首先,了解一下Comparator和Comparable
通常,要对一个存储在集合内的实体类进行排序时,有两种策略:1. 实体类实现Comparable接口;2. 创建集合时指定Comparator,即实现Comparator接口;
区别:称实现Comparable的实体类是可排序的,而Comparator则称为比较器。
下面使用具体的代码来使用这两个接口(按照使用的集合分别进行讲解)
一、List
List中存储的是Integer等数据类型的话,直接使用Collections.sort(List<E> list)
或者Collections.sort(List<E> list, Comparator<? super T> c)
进行排序。这里讲的是自定义类的排序。
- 实现Comparable的方式
public class Demo {
@Test
public void test(){
User user1 = new User("zhangsan", 23);
User user2 = new User("lisi", 25);
User user3 = new User("wangwu", 20);
List<User> list = new ArrayList<>();
list.add(u