skip()
用来做对List中元素的跳过,即如果为5,则跳过前5个元素,如果跳过元素超过list中元素个数,则返回一个空的list对象
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 6, 7, 7, 1);
List<Integer> result=list;
result = list.stream().skip(5).collect(toList());
System.out.println("skip::"+result);
输出内容如下 skip::[6, 6, 7, 7, 1]
limit()
相反,用来截取前n个元素,例子如下,若n超过元素数量,则只返回元素存在的数量
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 6, 7, 7, 1);
List<Integer> result=list;
result = list.stream().limit(50).collect(toList());
System.out.println("limit::"+result);
输出内容如下 limit::[1, 2, 3, 4, 5, 6, 6, 7, 7, 1]
Map()
用来对元素对象进行加工,转换,如将list中的元素对象(Integer类型)乘2,
map中将list中对象传入,并返回一个自定义对象,
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 6, 7, 7, 1);
List<Integer> result = list.stream().map(i -> i * 2).collect(toList());
System.out.println(result);
输出内容如下:[2, 4, 6, 8, 10, 12, 12, 14, 14, 2]
FlatMap()
数据扁平化,例子如下:
String[] words = {"Hello", "World"};
//{h,e,l,l,o},{W,o,r,l,d}
Stream<String[]> stream = Arrays.stream(words).map(w -> w.split(""));//Stream<String[]>
//H,e,l,l,o,W,o,r,l,d
Stream<String> stringStream = stream.flatMap(Arrays::stream);
stringStream.distinct().forEach(System.out::print);
输出内容如下:HeloWrd
图解内容如下: