当前位置: 首页 > 知识库问答 >
问题:

收集方法的第三个参数(组合器)是如何使用的?[复制]

和魁
2023-03-14

我正在学习lambda表达式。从一张名单中,我想要另一张20岁以上的人的名单。

final List<Person> people = Arrays.asList(
        new Person("John", 10),
        new Person("Greg", 30),
        new Person("Sara", 20),
        new Person("Jane", 15));

 List<Person> olderThan20 =
        people.stream()
       .filter(person -> person.getAge() > 20)
                    .collect(ArrayList::new, 
                             ArrayList::add, 
                             ArrayList::addAll);

我的印象是,只有前两个参数足够。

在我的示例中,如何以及何时使用第三个参数ArrayList::addAll?

共有1个答案

席俊
2023-03-14

这个问题的“正确”答案:使用收集(Collectors.toList())。除非你必须这样做,否则使用收集()的3 arg版本是没有意义的。有关更多详细信息,请参阅此处。

有关如何使用该3 argCollection(),请从此处开始阅读。

 类似资料:
  • 本文向大家介绍Angular 如何使用第三方库的方法,包括了Angular 如何使用第三方库的方法的使用技巧和注意事项,需要的朋友参考一下 Angular 的组件与模块看似好像与现有各种第三方类库(例如:lodash、moment 等)使用上有点格格不入,这很大的原因是 TypeScript 造成的假象。三足鼎立的前端其实都是雷同的,不管是哪种前端框架都可以使用到这些第三方类库。 以下我将从另一个

  • 我在扑克游戏的练习中绊倒了,我不知道怎么做: 我已经创建了一个包含7张卡的对象初始化数组。每张牌都由它的价值(7, 8, 9, 10,杰克...)和它的花色(俱乐部,钻石...)来指定。 我创建了第二个数组,计算相同值的卡片数量。例如,如果我有3张价值7的牌,那么在我的第二张表中,价值3的整数将适合价值7的牌。 我的问题是:在第三个数组中,,我如何将这3张值为7的卡复制到这张卡的开头?我不是在寻找

  • 我想用Mockito创建一个有三个参数的方法的存根,但我得到了空指针异常 为了这个我在做

  • 我从8Java的Stream API开始。 这是我使用的Person对象: 这是我的代码,它初始化对象列表Person并获取对象的数量、最大年龄和最小年龄,最后创建一个包含这三个值的对象数组: 是否可以对方法进行一次调用并直接返回对象数组?

  • 本文向大家介绍C#画笔使用复合数组绘制单个矩形的方法,包括了C#画笔使用复合数组绘制单个矩形的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#画笔使用复合数组绘制单个矩形的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 可以使用列表对象作为jpa查询方法的参数吗,如下所示 其中所述方法定义为: 以下是查询方法中的一些附加信息 https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-方法