lambda 表达式中。flatmap 的使用
直接上代码:
final List<List<Map>> lists = new ArrayList<>();
final List<Map> objects = new ArrayList<>();
final List<Map> objects2 = new ArrayList<>();
HashMap<Object, Object> objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("a","a");
objectObjectHashMap.put("c","c");
objects.add(objectObjectHashMap);
objectObjectHashMap = new HashMap<>();
objectObjectHashMap.put("b","b");
objects2.add(objectObjectHashMap);
lists.add(objects);
lists.add(objects2);
lists.stream().flatMap(Collection::stream)
.forEach(map -> {
map.forEach((k,v)->{
System.out.println("k:"+k+"\tvalue:"+v);
});
});
输出结果如下:
k:a value:a
k:c value:c
k:b value:b
由此知道 flatmap 是将集合进行更深层次的操作。
看过源码的同学能知道 flatMap 方法返回的是一个流数据。这样就好理解为什么 flatMap 能实现更深层次的遍历。