java collect

作者:原创时间:2022-03-25
文档

java collect是什么,让我们一起了解一下:

collect是一个终端操作,接收的参数是将流中的元素累积到汇总结果的各种方式(称为收集器),collect主要依赖java.util.stream.Collectors类内置的静态方法。

那么在流中的数据完成处理后,该如何将流中的数据重新归集到新的集合里?

因为流不存储数据,那么在流中的数据完成处理后,需要将流中的数据重新归集到新的集合里叫归集,toList、toSet和toMap比较常用,另外还有toCollection、toConcurrentMap等复杂一些的用法。

具体操作代码如下:

List list = Arrays.asList(1, 6, 3, 4, 6, 7, 9, 6, 20);
        List listNew = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toList());
        System.out.println("产生的新集合是:" + listNew);
        Set set = list.stream().filter(x -> x % 2 == 0).collect(Collectors.toSet());
        System.out.println("产生的不重复的新集合是:" + set);
        List personList = new ArrayList<>();
        personList.add(new Person("Tom", 8900, 22, "male", "New Yark"));
        personList.add(new Person("Jack", 7000, 29, "male", "Washington"));
        personList.add(new Person("Lily", 7800, 24, "female", "Washington"));
        personList.add(new Person("Anni", 8200, 28, "female", "New Yark"));
        personList.add(new Person("Owen", 9500, 26, "male", "New Yark"));
        personList.add(new Person("Alisa", 7900, 27, "female", "New Yark"));
        Map personMap =
                personList.stream().filter(p -> p.getSalary() > 8000).collect(Collectors.toMap(Person::getName,
                        p -> p));
        System.out.println("产生的新的map集合是:" + personMap);

拓展一下:在java中,流stream中的collect()方法详解如下:

  1. List vowels = List.of("a", "e", "i", "o", "u");
    // sequential stream - nothing to combine
    StringBuilder result = vowels.stream().collect(StringBuilder::new, (x, y) -> x.append(y),
    (a, b) -> a.append(",").append(b));
    System.out.println(result.toString());
    // parallel stream - combiner is combining partial results
    StringBuilder result1 = vowels.parallelStream().collect(StringBuilder::new, (x, y) -> x.append(y),
    (a, b) -> a.append(",").append(b));
    System.out.println(result1.toString());

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 复活节的由来 java const java consumer接口 统一和康师傅是哪国的 怎么删掉word中的空白页 微信笔记在哪里编辑 椰子怎么挑 蟑螂最怕三种克星 毛尖属于什么茶 java clone() java clob java classloader java class.forname java class java cipher java charset java charsequence java charat java channel iPad怎么重启 java cglib 平板如何录屏 java ceiling java callback java calendar获取当前时间 苹果13怎么开机 java calculate java byte取值范围 java bytebuffer