对ArrayList存放的对象,按其某属性自定义排序

mac2024-05-10  4

直接上代码,简单粗暴:

import java.io.*; import java.util.*; class num{ int id; int value; public num(int id, int value) { super(); this.id = id; this.value = value; } } public class test { public static void main(String[] args) throws IOException{ ArrayList<num> list=new ArrayList<num>(); list.add(new num(1,1)); list.add(new num(2,4)); list.add(new num(3,1)); Collections.sort(list,new Comparator<num>(){//从小到大 public int compare(num x,num y){ if(x.value>y.value) return 1; else if(x.value<y.value) return -1; else{//value相等则按id从小到大排序 if(x.id>=y.id) return 1; else return -1; } } }); for(int i=0;i<list.size();i++){ System.out.println(list.get(i).id+" "+list.get(i).value); } } }

运行结果:

最新回复(0)