1 public static void main(String[] args) {
2 List<String> list = new ArrayList<>();
3 list.add("张三");
4 list.add("李四");
5 list.add("王武");
6 list.add("王富贵");
7 list.add("张柳");
8 list.add("张西瓜");
9
10 // filter 过滤元素
11 list.stream().filter(s -> s.startsWith("张")).forEach(s -> System.out.println(s));
12 // 同上简写 s -> System.out.println(s) = System.out::println
13 list.stream().filter(s -> s.startsWith("张")).forEach(System.out::println);
14
15 list.stream().filter(s -> s.length() == 3).forEach(s -> System.out.println(s));
16 // count 统计
17 long count = list.stream().filter(s -> s.length() == 3).count();
18 System.out.println(count);
19
20 // limit 获取某元素
21 list.stream().filter(s -> s.startsWith("张")).limit(2).forEach(System.out::println);
22 // skip 跳过元素
23 list.stream().filter(s -> s.startsWith("张")).skip(2).limit(2).forEach(System.out::println);
24
25 // map 加工方法
26 // 给集合元素的前面加上一个: xx的:
27 list.stream().map(s ->"练习的:" + s).forEach(System.out::println);
28
29 // 加工成学生对象
30 list.stream().map(s -> new Student(s)).forEach(System.out::println);
31 // 同上 简化 s -> new Student(s) = Student::new
32 list.stream().map(Student::new).forEach(System.out::println);
33
34 // Stream流 合并 concat , distinct
35 Stream<String> s1 = list.stream().filter(s -> s.startsWith("张"));
36 Stream<String> s2 = Stream.of("java1", "java2");
37 Stream<String> concat = Stream.concat(s1, s2);
38 concat.distinct().forEach(System.out::println);
39 }

