Java Stream如何对集合进行排序

发布时间:2025-02-06 05:39:25 作者:小樊
来源:亿速云 阅读:82

在Java中,您可以使用Stream API对集合进行排序。以下是一些常见的方法:

  1. 对集合中的元素进行升序排序:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(5, 3, 8, 1, 6);

        List<Integer> sortedNumbers = numbers.stream()
                .sorted()
                .collect(Collectors.toList());

        System.out.println(sortedNumbers); // 输出:[1, 3, 5, 6, 8]
    }
}
  1. 对集合中的元素进行降序排序:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Integer> numbers = Arrays.asList(5, 3, 8, 1, 6);

        List<Integer> sortedNumbers = numbers.stream()
                .sorted((a, b) -> b - a)
                .collect(Collectors.toList());

        System.out.println(sortedNumbers); // 输出:[8, 6, 5, 3, 1]
    }
}
  1. 对集合中的元素进行自定义排序:
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        List<Employee> employees = Arrays.asList(
                new Employee(30, "Alice"),
                new Employee(25, "Bob"),
                new Employee(35, "Charlie")
        );

        List<Employee> sortedEmployees = employees.stream()
                .sorted(Comparator.comparingInt(Employee::getAge).reversed())
                .collect(Collectors.toList());

        sortedEmployees.forEach(System.out::println);
    }
}

class Employee {
    private int age;
    private String name;

    public Employee(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

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

在这个例子中,我们首先定义了一个Employee类,然后创建了一个包含Employee对象的列表。我们使用sorted()方法对列表进行排序,传入一个比较器(Comparator),该比较器根据员工的年龄进行降序排序。最后,我们使用collect()方法将排序后的流转换为一个新的列表。

推荐阅读:
  1. Java8中Stream常用方法有哪些
  2. Java8如何处理集合

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:Stream API如何实现数据过滤

下一篇:Stream如何实现中间操作与终端操作的区分

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》