Java实现List集合的排序:Comparator接口、Collections.sort()方法、stream().sorted()方法的使用

您所在的位置:网站首页 集合工具类的方法 Java实现List集合的排序:Comparator接口、Collections.sort()方法、stream().sorted()方法的使用

Java实现List集合的排序:Comparator接口、Collections.sort()方法、stream().sorted()方法的使用

2023-12-24 21:09| 来源: 网络整理| 查看: 265

Java 提供的 List 接口继承了 Collection 接口,因此包含 Collection 中的所有方法。List 是有序集合,允许有相同的元素。ArrayList 是List 接口的一个实现类,它实现了可变大小的数值,允许所有元素,包括 null,并可以根据索引位置对集合进行快速的随机访问。

下面将通过实例来实现使用 Comparator 接口、Collections.sor() 方法、stream().sorted() 方法实现集合的排序。

Comparator 接口、Collections.sor() 方法位于 java.util 包中。

stream().sorted() 方法位于 java.util.stream.Collectors 类下。

 博文系列:

《Java实现List集合的排序:Comparator接口、Collections.sort()方法、stream().sorted()方法的使用》

《Java实现TreeMap集合的排序:Key键的升序与降序、Value值的排序》

(1)创建用户信息实体类

/** * 用户信息实体类 * @author pan_junbiao **/ public class UserInfo { private int userId; //用户编号 private String userName; //用户名称 private int age; //年龄 private String blogInfo; //博客信息 //构造函数 public UserInfo(int userId, String userName, int age, String blogInfo) { this.userId = userId; this.userName = userName; this.age = age; this.blogInfo = blogInfo; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getBlogInfo() { return blogInfo; } public void setBlogInfo(String blogInfo) { this.blogInfo = blogInfo; } @Override public String toString() { return "用户编号:" + this.userId + " 用户名称:" + this.userName + " 年龄:" + this.age + " 博客信息:" + this.blogInfo; } }

(2)编写获取用户信息列表方法

/** * 获取用户信息列表 * @author pan_junbiao */ private List getUserList() { List userList = new ArrayList(); //创建用户信息 UserInfo user1 = new UserInfo(1,"pan_junbiao的博客_01", 18, "您好,欢迎访问 pan_junbiao的博客"); UserInfo user2 = new UserInfo(2,"pan_junbiao的博客_02", 41, "https://blog.csdn.net/pan_junbiao"); UserInfo user3 = new UserInfo(3,"pan_junbiao的博客_03", 35, "您好,欢迎访问 pan_junbiao的博客"); UserInfo user4 = new UserInfo(4,"pan_junbiao的博客_04", 32, "https://blog.csdn.net/pan_junbiao"); //将用户信息加入Map(故意打乱顺序) userList.add(user4); userList.add(user2); userList.add(user3); userList.add(user1); return userList; }

1、Comparator接口

Comparator 接口是一个比较器(比较接口),在 Java 中,可以通过使用 Comparator 接口实现集合或数组的排序。实现 Comparator 接口时,需要重写 int compare(T o1, T o2) 方法,但可以不重新 boolean equals(Object obj) 方法。

(1) int compare(T o1, T o2) 方法:是比较 o1 和 o2 的大小,其中 o1 指的就是第一个要比较的对象, o2 指的是第二个要比的对象。 比较之后会根据大小返回值:

若返回值为负数, 表示 o1 小于 o2小;

若返回值为 0,表示 o1 等于 o2;

若返回值为正数,表示 o1 大于 o2 ;

(2)boolean equals(Object obj) 方法:该方法可以不必重写。然而,在某些情况下,重写此方法可以允许程序确定两个不同的 Comparator 是否强行实施了相同的排序,从而提高性能。

2、Collections.sort()方法

Collections 类提供了两种 sort() 排序方法,分别如下:

(1)sort() 排序方法一:

public static


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3