收集Stream流的数据到集合或数组中

 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 
 8         //  收集 Stream 流的数据 到集合或数组中
 9         Stream<String> s1 = list.stream().filter(s -> s.startsWith("王"));
10         List<String> c1 = s1.collect(Collectors.toList());
11         System.out.println(c1);
12 
13         //  “流” 只能使用一次,要想再次使用必须开辟新的 “流”
14         Stream<String> s2 = list.stream().filter(s -> s.startsWith("王"));
15         List<String> c2 = s2.collect(Collectors.toList());
16         System.out.println(c2);
17     }

拓展一下

 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 
 8         //  收集 Stream 流的数据 到集合或数组中
 9         Stream<String> s1 = list.stream().filter(s -> s.startsWith("王"));
10         List<String> c1 = s1.collect(Collectors.toList());// 可变
11         System.out.println(c1);
12 //        List<String> s2 = s1.toList();// 不可变
13 //        s2.add("java");
14 //        System.out.println(s2);
15 
16         //  “流” 只能使用一次,要想再次使用必须开辟新的 “流”
17         Stream<String> s2 = list.stream().filter(s -> s.startsWith("王"));
18         List<String> c2 = s2.collect(Collectors.toList());
19         System.out.println(c2);
20 
21         Stream<String> s3 = list.stream().filter(s -> s.startsWith("王"));
22 //        String[] array1 = s3.toArray(new IntFunction<String[]>() {
23 //            @Override
24 //            public String[] apply(int value) {
25 //                return new String[value];
26 //            }
27 //        });
28         //  同上 简化
29         String[] array2 = s3.toArray(s -> new String[s]);
30 //        Object[] array = s3.toArray();
31 //        String[] array3 = s3.toArray(String[]::new); //   拓展
32 //        Integer[] array4 = s3.toArray(s -> new Integer[s]);//   拓展
33         System.out.println(Arrays.toString(array2));
34         
35     }

 

posted @ 2024-01-25 18:41  小※兽  阅读(10)  评论(0编辑  收藏  举报