Stream流API练习
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 }