在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
对象,则不要使用,因为它会将每个元素更改为其他元素,并且很难将它们映射回去。
您应该将所有逻辑都放在一个“ filter
:Emp
如果getLanguage
包含对象,则保留对象"java"
”。
empList.stream()
.filter(x->x.getLanguage().contains("java"))
.collect(Collectors.toList());
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句