假设有一个Student类,其中有一个属性是score,可以通过以下代码求出List
- List
students = new ArrayList<>(); // 添加学生对象到List中 - int sum = students.stream().mapToInt(Student::getScore).sum();
这里使用了mapToInt方法将每个Student对象映射成其score属性的值,然后调用sum方法求和。
可以使用以下代码将List
MapnameScoreMap = students.stream() .collect(Collectors.toMap(Student::getName, Student::getScore));
这里使用了Collectors.toMap方法将List转化为Map,其中getName方法返回Student的名字,getScore方法返回Student的score属性值。
List
students = Stream.of(
new Student("Tom", 80),
new Student("Mary", 90),
new Student("John", 75))
.collect(Collectors.toList());
这里使用了Stream.of方法创建一个流,其中包含三个新建的Student对象,然后调用collect方法将流转化为List。
//正序排列slist=list.stream().sorted(Comparator.comparing(Student::getAge)).collect(Collectors.toList());//倒序排列 list = list.stream().sorted(Comparator.comparing(Student::getAge).reversed()).collect(Collectors.toList());
按自然升序对集合进行排序
list.stream().sorted();
自然序降序使用Comparator提供reverseOrder()方法
list.stream().sorted(Comparator.reverseOrder());
- 还可以使用Java8的lambda表达式和Comparator接口来实现这个排序功能,代码如下:
-
- Collections.sort(openTimeList, Comparator.comparing(o -> o.getWorkDay()));
-
- 这段代码使用了Comparator.comparing方法来创建一个Comparator对象,主要是根据OpenTime对象的workDay属性来进行排序,通过lambda表达式o -> o.getWorkDay()来指定workDay属性的取值方式,最后调用Collections.sort方法来进行排序。