java集合求和最大值最小值示例分享

时间:2022-10-11 04:15:10 


package com.happyelements.athene.game.util;

import static com.google.common.base.Preconditions.checkNotNull;

import java.util.Collection;

import com.google.common.collect.Lists;

/**
 * Math工具类
 * 
 * @version 1.0
 * @since 1.0
 */
public class MathUtil {

 /**
  * @see MathUtil#min(Collection)
  * @param ts
  * @return
  */
 public static <T extends Comparable<T>> T min(T... ts) {
  return min(Lists.newArrayList(ts));
 }

 /**
  * 取最小值
  * @param values
  * @throws NullPointerException if (values == null || values.contain(null))
  * @return
  */
 public static <T extends Comparable<T>> T min(Collection<T> values) {
  checkNotNull(values);
  T min = null;

  for (T t : values) {
   checkNotNull(t);
   if (min == null) {
    min = t;
   } else {
    min = min.compareTo(t) < 0 ? min : t;
   }
  }
  return min;
 }

 /**
  * @see MathUtil#max(Collection)
  * @param ts
  * @return
  */
 public static <T extends Comparable<T>> T max(T... ts) {
  return max(Lists.newArrayList(ts));
 }

 /**
  * 取最大值
  * @param values
  * @throws NullPointerException if (values == null || values.contain(null))
  * @return
  */
 public static <T extends Comparable<T>> T max(Collection<T> values) {
  checkNotNull(values);
  T max = null;

  for (T t : values) {
   checkNotNull(t);
   if (max == null) {
    max = t;
   } else {
    max = max.compareTo(t) > 0 ? max : t;
   }
  }
  return max;
 }

 /**
  * 求和
  * @param values
  * @throws NullPointerException if (values == null || values.contain(null))
  * @return
  */
 public static Integer sum(Collection<Integer> values) {
  checkNotNull(values);
  int sum = 0;
  for (Integer integer : values) {
   checkNotNull(integer);
   sum += integer;
  }
  return sum;
 }

 /**
  * @see MathUtil#sum(Collection)
  * @param ts
  * @return
  */
 public static Integer sum(Integer... ts) {
  return sum(Lists.newArrayList(ts));
 }

}

标签:最大值最小值,java集合
0
投稿

猜你喜欢

  • C#解决多IfElse判断语句和Switch语句问题的方法分享

    2023-04-06 18:36:22
  • Android Spinner和GridView组件的使用示例

    2022-07-01 15:03:40
  • 解决Springboot get请求是参数过长的情况

    2023-11-27 16:45:37
  • c#得到本月有几周和这几周的起止时间示例代码

    2022-11-01 15:20:34
  • java二叉树的几种遍历递归与非递归实现代码

    2022-06-29 19:19:47
  • Android短信验证服务分享

    2023-04-04 12:35:59
  • Android EventBus 3.0.0 使用总结(必看篇)

    2023-09-06 06:32:41
  • 理解Java的序列化与反序列化

    2022-06-03 16:14:54
  • Java实战个人博客系统的实现流程

    2023-04-12 02:32:44
  • SpringBoot项目中新增脱敏功能的实例代码

    2023-11-24 01:32:14
  • Android学习之使用SharedPreferences存储应用程序数据

    2023-09-09 14:00:41
  • Java 设计模式中的策略模式详情

    2023-08-06 03:45:11
  • C#文件分割的方法

    2023-09-17 22:20:56
  • java抛出异常的几种情况小结

    2022-01-11 05:46:40
  • Spring Boot FeignClient 如何捕获业务异常信息

    2022-01-26 11:57:41
  • android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法

    2021-05-28 14:02:09
  • Java 8中字符串拼接新姿势StringJoiner详解

    2022-03-09 03:00:28
  • C#实现串口调试工具

    2022-06-09 12:04:04
  • Java经典面试题最全汇总208道(三)

    2023-11-15 23:30:42
  • springboot乱码问题解决方案

    2022-03-22 21:32:38
  • asp之家 软件编程 m.aspxhome.com