随便记点

Posted by Laiaike on 2022-11-22

随便记点Java特性做备忘。

Java 8 Stream

在树形,分级目录的时候经常看到。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Stream {
public static void main(String[] args) {
// 1. map
List<Integer> integerList = Arrays.asList(1, 2, 2, 5, 7, -3, 3);
List<Integer> integers = integerList.stream().map(i -> i * i).distinct().collect(Collectors.toList());
for (Integer integer : integers) {
System.out.println(integer);
}
// 1.5. 统计
IntSummaryStatistics stats = integerList.stream().mapToInt((x) -> x).summaryStatistics();
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
// 2. filter
long count = integerList.stream().filter(i -> i != 2).count();
System.out.println(count);
// 3. limit & forEach
Random random = new Random();
random.ints().limit(10).forEach(System.out::println);
// 4. sored
random.ints().limit(10).sorted().forEach(System.out::println);
// 5. Collectors
List<String> strings = Arrays.asList("abc", "", "bc", "efg", "abcd","", "jkl");
String newString = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(","));
System.out.println(newString);
}
}