Java8 就不多说了 大概最良心的就是 lambda stream Optional
方法引用以及base64 本篇介绍一写自己平时开发比较常用的 流方法 更好的处理数据
学习流 一定要对抽象这个概念有一点理解
filter
见名之意 筛选 这个其实就是 for+if 再把满足条件的 返回一个新的集合
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<String> filteredNames = names.stream()
.filter(name -> name.startsWith("C")).collect(Collectors.toList());
如果有的看不懂 感觉有点抽象可以讲光标放在关键字上 alt+enter⬇️⬇️⬇️⬇️⬇️⬇️
替换完之后就变成了⬇️⬇️⬇️⬇️⬇️⬇️⬇️⬇️
map
映射 替换 想怎么理解都可以。。。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> squaredNumbers = numbers.stream()
.map(number -> number * number).collect(Collectors.toList());
替换成普通的写法⬇️
forearch
循环 不多介绍直接上代码
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
names.stream()
.forEach(name -> System.out.println(name));
这个可以简写 也就是用到了方法引用的这个特性,stream也可以省
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
names.forEach(System.out::println);
findFirst()和 findAny()
用于查找集合中的第一个或任意一个满足指定条件的元素。类似 for if break
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
Optional<String> foundName = names.stream()
.filter(name -> name.startsWith("C"))
.findFirst();
min()和 max()
用于找出集合中的最小值和最大值。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> min = numbers.stream()
.min();
Optional<Integer> max = numbers.stream()
.max();
allMatch()、anyMatch()和 noneMatch()
用于检查集合中的所有元素、任意一个元素或没有元素是否满足指定条件。
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
boolean allStartWithA = names.stream()
.allMatch(name -> name.startsWith("A"));
boolean anyStartWithC = names.stream()
.anyMatch(name -> name.startsWith("C"));
boolean noneStartWithZ = names.stream()
.noneMatch(name -> name.startsWith("Z"));
sorted()
排序 默认正序(小的在上面)倒序加参数 :Comparator.reverseOrder()
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<String> sortedNames = names.stream()
.sorted()
.collect(Collectors.toList());
List<String> sortedNamesDescending = names.stream()
.sorted(Comparator.reverseOrder())
.collect(Collectors.toList());
大概就这么多 学习流之前建议学习一下集合工具类Collections