java集合求和最大值最小值示例分享
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 try catch finally异常处理组合详解
这篇文章主要介绍了Java try catch finally异常处理组合详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2020-05-05MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题
我们经常会遇到表中的字段名和表对应实体类的属性名称不一定都是完全相同的情况,如何解决呢?下面脚本之家小编给大家介绍MyBatis学习教程(四)-如何快速解决字段名与实体类属性名不相同的冲突问题,一起学习吧2016-05-05springboot2.X整合prometheus监控的实例讲解
这篇文章主要介绍了springboot2.X整合prometheus监控的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2021-03-03SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例
本篇文章主要介绍了SpringMVC 文件上传配置,详解介绍了如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤,有兴趣的可以了解一下。2016-12-12
最新评论