0


使用Java8新特性对List对象进行遍历、过滤、排序等处理

使用java8 新特性stream流对List对象进行遍历、过滤、查询、去重、排序、分组

新建一个名为Student的类,包含以下属性:

public class Student {
    private String name;
    private int age;
    private String major;
    private double score;
  
    // 构造函数、getter和setter方法
}

现在我们有一个List<Student>类型的列表,可以使用Java8的stream流对它进行遍历、过滤、查询、去重、排序、分组等操作。

1、遍历

使用forEach()方法遍历List中的每一个元素:

List<Student> list = new ArrayList<>();
// 添加元素到list

list.stream().forEach(System.out::println);

2、过滤

使用filter()方法过滤出分数大于80分的同学:

List<Student> list = new ArrayList<>();
// 添加元素到list

List<Student> filteredList = list.stream()
                                 .filter(s -> s.getScore() >= 80.0)
                                 .collect(Collectors.toList());

3、查询

使用findFirst()或findAny()方法查询第一个或任意一个元素:

List<Student> list = new ArrayList<>();
// 添加元素到list

Optional<Student> studentOptional = list.stream()
                                         .filter(s -> s.getName().equals("Tom"))
                                         .findFirst();

4、去重

使用distinct()方法去重

List<Student> list = new ArrayList<>();
// 添加元素到list

List<Student> distinctList = list.stream()
                                 .distinct()
                                 .collect(Collectors.toList());

5、排序

使用sorted()方法对元素进行排序:

List<Student> list = new ArrayList<>();
// 添加元素到list

// 按照分数升序排序
List<Student> sortedList = list.stream()
                               .sorted(Comparator.comparingDouble(Student::getScore))
                               .collect(Collectors.toList());

// 按照年龄降序排序
List<Student> reversedList = list.stream()
                                 .sorted(Comparator.comparingInt(Student::getAge).reversed())
                                 .collect(Collectors.toList());

6、分组

使用groupingBy()方法对元素进行分组:

List<Student> list = new ArrayList<>();
// 添加元素到list

Map<String, List<Student>> groupByMajor = list.stream()
                                              .collect(Collectors.groupingBy(Student::getMajor));
标签: list 数据结构

本文转载自: https://blog.csdn.net/MidYear/article/details/131722495
版权归原作者 EmperorAugust 所有, 如有侵权,请联系我们删除。

“使用Java8新特性对List对象进行遍历、过滤、排序等处理”的评论:

还没有评论