一: stream
中间操作符
-
filter:中间操作符,过滤集合中的元素
List<String> list = Arrays.asList("张三", "李四", "王五", "test"); List<String> t = list.stream().filter(str -> str.contains("t")).collect(Collectors.toList()); System.out.println(t);
-
distinct:去重操作符
List<String> list = Arrays.asList("张三", "李四", "王五", "test","张三","test"); List<String> collect = list.stream().distinct().collect(Collectors.toList()); System.out.println(collect); 注意:比较对象,比较的是对象的地址的值,根据hashCode与equals方法实现的.所以比较的是对象的地址,而不是对象的值
-
limit:返回一个不超过给定长度的流(获取流中前N个元素)
List<String> list = Arrays.asList("张三", "李四", "王五", "test"); System.out.println(list.stream().limit(2).collect(Collectors.toList())); 控制台打印:[张三, 李四]
-
skip:获取流中第N个后的元素
List<String> list = Arrays.asList("张三", "李四", "王五", "test"); System.out.println(list.stream().skip(2).collect(Collectors.toList())); 控制台打印:[王五, test]
-
map:接受一个函数做为参数
List<String> list = Arrays.asList("张三", "李四", "王五", "test"); List<String> stuMap = list.stream().map(str -> str.concat("_stuMap")).collect(Collectors.toList()); System.out.println(stuMap); 控制台打印:[张三_stuMap, 李四_stuMap, 王五_stuMap, test_stuMap]