下面的lambda表达式获取HashMap的值,获取其ArrayList中的对象列表,将所有此类对象添加到另一个ArrayList中,然后在满足条件时打印每个属性。
这是可行的,但我有点沮丧,因为我不能想出如何在一个步骤中做到这一点,例如,不使用两个lambda表达式。
Map<Integer, Person> people = new HashMap<Integer, Person>();
...
List<Object> objects = new ArrayList<Object>();
people.values().stream()
.map(p->p.getObjects())
.forEach(p->objects.addAll(p)); //note: can be multiple
objects.stream()
.filter(p->p.getClass().toString().contains("Keyword"))
.forEach(p->System.out.println(p.display()));
那么,有没有一种方法可以直接从第2行转到第5行,从而有效地将对象列表的流转换为所有对象本身的流?
转载请注明出处:http://www.bigbigcall.com/article/20230330/1123047.html