1. .stream().map().distinct().collect(Collectors.toList())
example:
使用Arrays.asList() 将数组转化成List会失败,因为这个方法只能将int装箱为Integer,但不能将int数组装箱为Integer数组。
转而使用stream() 将源数据—包括集合、数组等转换成流。
map() 用于映射每个元素对应的结果–即平方数。
//算平方
List<Integer> numbers = Arrays.asList(2, 5, 8, 9, 7, 4, 5, 6);
List<Integer> squareNumList = numbers.stream().map(i -> i*i).distinct().collect(Collectors.toList());
System.out.println("i*i= " + squareNumList);
最后打印出来的结果就是i的平方数。
2. filter()
example:
使用filter() 过滤空字符,使用parallelStream() 作为流并行处理程序的代替方法,输出空字符串的数量。
//过滤空字符串
List<String> strings = Arrays.asList("a", "", "", "jds");
//count接收空字符串的数量
// int count = (int) strings.stream().filter(string -> string.isEmpty()).count();
int count = (int) strings.parallelStream().filter(string -> string.isEmpty()).count(); //parallelStream流并行处理程序的代替方法
System.out.println("空字符串的数量是:" + count);
3. Collectors()
//Collectors() 可用于将流转换成集合、聚合元素。Collectors可用于返回列表或字符串==
List<String> filetered = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.toList());
System.out.println("筛选列表:" + filetered);
String mergedstr = strings.stream().filter(string -> !string.isEmpty()).collect(Collectors.joining(", "));
System.out.println("合并字符串:"+ mergedstr);
(1). Collectors.toList()
在本例中作用是获取对象中所有的非空字符串转化成List
(2).Collectors.joining()
在本例中作用是将流中的两个String元素之间插入定界符: ,
4. 用random.ints()创建一个无穷大的数字流
用random.ints() 创建一个无穷大的数字流,limit() 方法用于获取指定数量的流----10,forEach()迭代流中的每个数据,再使用sorted() 对流进行排序.
//limit方法用于获取指定数量的流,以下用limit()打印10条数据,forEach()迭代流中的每个数据
Random random = new Random();
//random.ints()创建一个无穷大的数字流
random.ints().limit(10).forEach(System.out :: println);
//Sorted 对流进行排序
random.ints().limit(10).sorted().forEach(System.out :: println); //从小到大排序
打印出来的结果:(从小到大的顺序排列)
学习参考:https://www.cnblogs.com/agnesFlower/p/12125028.html