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基礎(chǔ)知識(shí)精通循環(huán)結(jié)構(gòu)與break及continue
循環(huán)結(jié)構(gòu)是指在程序中需要反復(fù)執(zhí)行某個(gè)功能而設(shè)置的一種程序結(jié)構(gòu)。它由循環(huán)體中的條件,判斷繼續(xù)執(zhí)行某個(gè)功能還是退出循環(huán),選擇結(jié)構(gòu)用于判斷給定的條件,根據(jù)判斷的結(jié)果判斷某些條件,根據(jù)判斷的結(jié)果來控制程序的流程2022-04-04
Spring MVC數(shù)據(jù)綁定概述及原理詳解
這篇文章主要介紹了Spring MVC數(shù)據(jù)綁定概述及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
java網(wǎng)絡(luò)編程之識(shí)別示例 獲取主機(jī)網(wǎng)絡(luò)接口列表
一個(gè)客戶端想要發(fā)起一次通信,先決條件就是需要知道運(yùn)行著服務(wù)器端程序的主機(jī)的IP地址是多少。然后我們才能夠通過這個(gè)地址向服務(wù)器發(fā)送信息。2014-01-01
linux系統(tǒng)下java項(xiàng)目在后臺(tái)啟動(dòng)的4種方式總結(jié)
Linux是集多種功能于一身的操作系統(tǒng),它可以讓用戶查看和管理當(dāng)下正在運(yùn)行的進(jìn)程,包括Java程序,這篇文章主要給大家總結(jié)介紹了關(guān)于linux系統(tǒng)下java項(xiàng)目在后臺(tái)啟動(dòng)的4種方式,需要的朋友可以參考下2023-10-10
簡單快速對@RequestParam聲明的參數(shù)作校驗(yàn)操作
這篇文章主要介紹了簡單快速對@RequestParam聲明的參數(shù)作校驗(yàn)操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08

