java8 stream List 到排序
  lKDKZGoxXL6G 2023年11月28日 35 0

Java8 Stream List 排序实现

简介

在Java8中,引入了Stream API,它提供了一种能够更方便地操作集合(Collection)类的方式。通过使用Stream,我们可以轻松地对集合进行筛选、排序、映射等操作。

本文将教会新手开发者如何使用Java8的Stream API对List进行排序。我们将使用一个包含一些学生信息的List作为示例,对学生按照成绩进行排序。

整体流程

下面是完成任务的整体流程,我们将使用表格形式展示每个步骤。

步骤 描述
1 创建一个包含学生信息的List
2 使用Stream API对List进行排序
3 输出排序后的结果

接下来,让我们逐步进行每个步骤的解释和实现。

创建学生信息的List

首先,我们需要创建一个包含学生信息的List。每个学生信息包括学生姓名和成绩。我们可以使用Java的ArrayList来实现。

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含学生信息的List
        List<Student> students = new ArrayList<>();
        
        // 添加学生信息
        students.add(new Student("Alice", 80));
        students.add(new Student("Bob", 90));
        students.add(new Student("Charlie", 70));
        students.add(new Student("David", 85));
        
        // 打印原始的学生信息
        System.out.println("原始学生信息:");
        for (Student student : students) {
            System.out.println(student);
        }
    }
}

class Student {
    private String name;
    private int score;

    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }

    public String getName() {
        return name;
    }

    public int getScore() {
        return score;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", score=" + score +
                '}';
    }
}

上述代码中,我们创建了一个名为Student的类,用于表示学生的姓名和成绩。然后我们创建了一个包含学生信息的List,并添加了几个学生信息。最后,我们打印出原始的学生信息。

使用Stream API对List进行排序

接下来,我们使用Stream API对List进行排序。在Java8中,List接口已经提供了一个stream()方法,可以将List转换为Stream。

我们可以使用Stream的sorted()方法对元素进行排序。对于对象类型,我们需要传入一个自定义的Comparator来指定排序规则。在本例中,我们按照学生的成绩进行排序。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含学生信息的List
        List<Student> students = new ArrayList<>();
        
        // 添加学生信息
        students.add(new Student("Alice", 80));
        students.add(new Student("Bob", 90));
        students.add(new Student("Charlie", 70));
        students.add(new Student("David", 85));
        
        // 使用Stream API对List进行排序
        List<Student> sortedStudents = students.stream()
                .sorted(Comparator.comparingInt(Student::getScore))
                .collect(Collectors.toList());
                
        // 打印排序后的学生信息
        System.out.println("排序后的学生信息:");
        for (Student student : sortedStudents) {
            System.out.println(student);
        }
    }
}

上述代码中,我们使用Stream API的sorted()方法对List进行排序。在sorted()方法中,我们使用Comparator.comparingInt()方法指定按照学生的成绩进行排序。

最后,我们使用collect(Collectors.toList())方法将排序后的Stream转换为List,并将其赋值给sortedStudents变量。

输出排序后的结果

最后,我们可以输出排序后的学生信息。

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含学生信息的List
        List<Student> students = new ArrayList<>();
        
        // 添加学生信息
        students.add(new Student("Alice", 80));
        students.add(new Student("Bob", 90));
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
  2Vtxr3XfwhHq   2024年05月17日   55   0   0 Java
  Tnh5bgG19sRf   2024年05月20日   114   0   0 Java
  8s1LUHPryisj   2024年05月17日   49   0   0 Java
  aRSRdgycpgWt   2024年05月17日   47   0   0 Java
lKDKZGoxXL6G