集合求和三种方式
Stream是什么,怎么用…这里不做详细介绍,下面我们只说一下集合快速求和的三种算法:
我们先创建一个list集合用作测试:
List<Integer> list= Lists.newArrayList();
list.add(111);
list.add(222);
list.add(333);
第一种:
Integer sum = list.stream().reduce((x,y)->x+y).get();//666
第二种:
Integer sum = list.stream().reduce(0,(x,y)->x+y);//666
Integer sum = list.stream().reduce(10,(x,y)->x+y);//676
第三种:
Integer sum = list.stream().mapToInt((x)->x).sum();//666
Integer sum = list.stream().mapToInt((x)->2*x).sum();//1332
Integer sum = list.stream().mapToInt((x)->x+1).sum();//669
集合根据属性排序
第一种:正序排列
personList.stream().sorted(Comparator.comparing(Person::getAge)).collect(Collectors.toList());
第二种:倒序排列
personList.stream().sorted(Comparator.comparing(Person::getAge).reversed()).collect(Collectors.toList());
第三种:多条件排列
List collect = personList.stream()
.sorted(Comparator.comparing(Person::getAge).thenComparing(Comparator.comparing(Person::getName)))
.collect(Collectors.toList());