map
-
map比较简单,可以抽取列表元素的某个属性形成新的列表,但是无法对更深层的属性做提取
map能够直接操作list中的每个对象
-
代码示例:
List<Integer> integers = new ArrayList<>();
//添加数据略
integers.stream.map(i -> i + 1).foreach(System.out::println);
flatMap
- 可以操作更深层的数据
- 代码示例:
List<List<Integer>> outer = new ArrayList<>();
List<Integer> inner1 = new ArrayList<>();
inner1.add(1);
List<Integer> inner2 = new ArrayList<>();
inner1.add(2);
List<Integer> inner3 = new ArrayList<>();
inner1.add(3);
List<Integer> inner4 = new ArrayList<>();
inner1.add(4);
List<Integer> inner5 = new ArrayList<>();
inner1.add(5);
outer.add(inner1);
outer.add(inner2);
outer.add(inner3);
outer.add(inner4);
outer.add(inner5);
List<Integer> result = outer.stream().flatMap(inner -> inner.stream().map(i -> i + 1)).collect(toList());
System.out.println(result);