Java 8流API-根据条件过滤并收集对象

学习Hadoop:

在Java 8中,根据某些过滤条件收集emp对象。

在主要班级

List<Emp> empList = Arrays.asList(
    new Emp("aaa", language1), 
    new Emp("cc", language2),
    new Emp("bb", language3), 
    new Emp("dd", language3)
);

empList.stream()
    .flatMap(s->s.getLanguage().stream())
    .filter(s->s.equals("java"))
    .forEach(System.out::println); //Here just i am printing. 

其实我需要收集 new List<EMP>

如何收集都具有语言“ java”的emp对象。我能怎么做?

清扫器:

flatMap如果要最终收集Emp对象,则不要使用因为它会将每个元素更改为其他元素,并且很难将它们映射回去。

您应该将所有逻辑都放在一个“ filterEmp如果getLanguage包含对象,则保留对象"java"”。

empList.stream()
    .filter(x->x.getLanguage().contains("java"))
    .collect(Collectors.toList());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章