/** 原始数据 **/
List strList = Arrays.asList("a", "b", "c", "d");
List numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
/** 筛选数据 filter**/
List aList = strList.stream().filter(s ->
"a".equals(s)
).collect(Collectors.toList());
aList.stream().forEach(System.out::println);
/** map 方法用于映射每个元素到对应的结果 **/
// 获取对应的平方数
List squaresList = numbers.stream().map( i -> i*i).distinct().collect(Collectors.toList());
squaresList.stream().forEach(System.out::println);
/** 并行处理 **/
squaresList.parallelStream().forEach(System.out::println);
/** filter里面写多个条件 **/
strList.stream().filter(s -> {
boolean notEmpty = false;
if (!s.isEmpty()) {
notEmpty = true;
}
return notEmpty;
}).collect(Collectors.toList()).forEach(System.out::print);
/** Collectors操作 **/
System.out.println(strList.stream().filter(s -> !s.isEmpty()).collect(Collectors.joining(",")));
System.out.println(strList.stream().filter(s -> !s.isEmpty()).collect(Collectors.joining()));
System.out.println(strList.stream().filter(s -> !s.isEmpty()).collect(Collectors.joining(",","pre","suf")));
/** 统计 **/
IntSummaryStatistics stats = numbers.stream().mapToInt(x -> x).summaryStatistics();
System.out.println("列表中最大的数 : " + stats.getMax());
System.out.println("列表中最小的数 : " + stats.getMin());
System.out.println("所有数之和 : " + stats.getSum());
System.out.println("平均数 : " + stats.getAverage());
/** 排序 **/
numbers.stream().sorted((a,b)->-a.compareTo(b)).forEach(System.out::print); //倒序
numbers.stream().sorted(Comparator.comparingInt(Integer::intValue)).forEach(System.out::print); //正序
numbers.stream().sorted().forEach(System.out::print); //默认正序