Java 如何对List集合中的对象进行排序

一、要排序的类实现Comparable接口

public class UserInfoVo implements Comparable{
  private Long id;
  private String name;
  private Long creatTime;
  //省略若干代码。。。
  //这里要重写Comparable<>中的compareTo()方法,设置排序标准
  @Override
    public int compareTo(Userinfo o) {
        //升序排列
        return this.getCreatTime().compareTo(o.getCreatTime());
    }
}
//这里是调用实现排序
List userInfoList = new ArrayList();
userInfoList.add(userList1);
userInfoList.add(userList2);

//只要是实现了这个接口的类,就可以用Collections.sort直接排序
Collections.sort(userInfoList);

二、直接调用Collections.sort()方法,并重写compare方法

public class Demo {
 
	public static void main(String[] args) {
		
		TestA testA1 = new TestA("小张", 3);
		TestA testA2 = new TestA("小李", 1);
		TestA testA3 = new TestA("小王", 2);
		List list  = new ArrayList<>();
		list.add(testA1);
		list.add(testA2);
		list.add(testA3);
		System.out.println("排序前--:"+list.toString());

		Collections.sort(list, new Comparator() {
                    @Override
                    public int compare(TestA o1, TestA o2) {
                        //升序
                        return o1.getAge().compareTo(o2.getAge());
                    }
                });

		System.out.println("升序排序后--:"+list.toString());
		
		Collections.sort(list, new Comparator() {
                    @Override
                    public int compare(TestA o1, TestA o2) {
                        //降序
                        return o2.getAge().compareTo(o1.getAge());
                    }
                });

		System.out.println("降序排序后--:"+list.toString());
	}	
}

参考:https://blog.csdn.net/Mr_Hou2016/article/details/71746448

https://blog.csdn.net/qq_39366175/article/details/79449178

你可能感兴趣的:(Java)