如何使用Java 8 Stream取得最大值?
作者:CalmWind
时间:2023-05-08
来源:互联网
浏览:0
java8的stream取maxpublicstaticvoidmain(String[]args){Listlist=Arrays.asList(1,2,3,4,5,6);Integermax=list.stream().max((a,b)->{if(a>b){return1;}elsereturn-1;}).get();System.out.println(max);}注意点:这里判断大小是通过正负数和0值。而不是直接写成if(a>b){returna;}elsereturnb;可以简化写法intma
java8的stream取max
public static void main(String[] args) {
List list = Arrays.asList(1, 2, 3, 4, 5, 6);
Integer max = list.stream().max((a, b) -> {
if (a > b) {
return 1;
} else return -1;
}).get();
System.out.println(max);
} 注意点:这里判断大小是通过正负数和0值。 而不是直接写成
if (a > b) {
return a;
} else return b;可以简化写法
int max = list.stream().max((a, b) -> a > b ? 1 : -1).get();
java8 stream详解~聚合(max/min/count)
max、min、count这些字眼你一定不陌生,没错,在mysql中我们常用它们进行数据统计。
Java stream中也引入了这些概念和用法,极大地方便了我们对集合、数组的数据统计工作。

「案例一:获取String集合中最长的元素。」
public class StreamTest {
public static void main(String[] args) {
List list = Arrays.asList("adnm", "admmt", "pot", "xbangd", "weoujgsd");
Optional max = list.stream().max(Comparator.comparing(String::length));
System.out.println("最长的字符串:" + max.get());
}
} 「案例二:获取Integer集合中的最大值。」
public class StreamTest {
public static void main(String[] args) {
List list = Arrays.asList(7, 6, 9, 4, 11, 6);
// 自然排序
Optional max = list.stream().max(Integer::compareTo);
// 自定义排序
Optional max2 = list.stream().max(new Comparator() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
System.out.println("自然排序的最大值:" + max.get());
System.out.println("自定义排序的最大值:" + max2.get());
}
} 「案例三:获取员工工资最高的人。」
public class StreamTest {
public static void main(String[] args) {
List personList = new ArrayList();
personList.add(new Person("Tom", 8900, 23, "male", "New York"));
personList.add(new Person("Jack", 7000, 25, "male", "Washington"));
personList.add(new Person("Lily", 7800, 21, "female", "Washington"));
personList.add(new Person("Anni", 8200, 24, "female", "New York"));
personList.add(new Person("Owen", 9500, 25, "male", "New York"));
personList.add(new Person("Alisa", 7900, 26, "female", "New York"));
Optional max = personList.stream().max(Comparator.comparingInt(Person::getSalary));
System.out.println("员工工资最大值:" + max.get().getSalary());
}
} 「案例四:计算Integer集合中大于6的元素的个数。」
import java.util.Arrays;
import java.util.List;
public class StreamTest {
public static void main(String[] args) {
List list = Arrays.asList(7, 6, 4, 8, 2, 11, 9);
long count = list.stream().filter(x -> x > 6).count();
System.out.println("list中大于6的元素个数:" + count);
}
}
作者最新文章
PDF转图片在线怎么用?资料整理的简单流程
2026-09-03 12:12
科大讯飞发布星火多模态大模型X2-VL,基于全国产算力训练
2026-08-25 16:21
雷军小米YU7装600斤车厘子慰问工程师被指违规 回应:封闭道路分装 交警称后排满载不合法
2026-08-25 15:23
Anthropic禁用Fable 5模型,亚马逊CEO贾西或是背后导火索
2026-08-25 14:58
长虹T06(双4G)忘了手机密码怎么办?
2026-08-25 13:40
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多
Windows 10
Windows
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式
Windows/macOS/Linux
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
















