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));
}
}
相關(guān)文章
Java try catch finally異常處理組合詳解
這篇文章主要介紹了Java try catch finally異常處理組合詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-05-05MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實體類屬性名不相同的沖突問題
我們經(jīng)常會遇到表中的字段名和表對應(yīng)實體類的屬性名稱不一定都是完全相同的情況,如何解決呢?下面腳本之家小編給大家介紹MyBatis學(xué)習(xí)教程(四)-如何快速解決字段名與實體類屬性名不相同的沖突問題,一起學(xué)習(xí)吧2016-05-05springboot2.X整合prometheus監(jiān)控的實例講解
這篇文章主要介紹了springboot2.X整合prometheus監(jiān)控的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03SpringMVC 文件上傳配置,多文件上傳,使用的MultipartFile的實例
本篇文章主要介紹了SpringMVC 文件上傳配置,詳解介紹了如何使用SpringMVC進(jìn)行表單上的文件上傳以及多個文件同時上傳的步驟,有興趣的可以了解一下。2016-12-12