可以考虑如下方法。List<Entity> list = ...; Collections.sort(list, new Comparator<Entity>(){ public int compare(Entity e1, Entity e2) { //填写Entity比较的代码,相等返回0,大于返回1,小于返回-1. return 0; } });
public Integer getCode() { return code; } }public class CommonTest { @SuppressWarnings("unchecked") public static void main(String[] args){ List<Entity> list = new ArrayList<Entity>(); list.add(new Entity(3)); list.add(new Entity(1)); list.add(new Entity(5));
Collections.sort(list, new Comparator<Entity>(){ @Override public int compare(Entity o1, Entity o2) { int i = (int)o1.getCode(); int j = (int)o2.getCode(); if(i > j) return -1;//正序 return 1 else if(i <= j) return 1;//正序 return -1 return 0; } });
for(Entity e : list){ System.out.println(e.getCode()); } } }
Arrays.sort(list, new MyComparator()); class MyComparator implements Comparator<entity> { public int compare(entity1, entity2) { return entity1.需排序的属性- entity2.需排序的属性; }}
Collections.sort(list, new Comparator<Entity>(){
public int compare(Entity e1, Entity e2) {
//填写Entity比较的代码,相等返回0,大于返回1,小于返回-1.
return 0;
}
});
import java.util.Collections;
import java.util.Comparator;
import java.util.List;class Entity {
private final Integer code;
public Entity(Integer code){
this.code = code;
}
public Integer getCode() {
return code;
}
}public class CommonTest {
@SuppressWarnings("unchecked")
public static void main(String[] args){
List<Entity> list = new ArrayList<Entity>();
list.add(new Entity(3));
list.add(new Entity(1));
list.add(new Entity(5));
Collections.sort(list, new Comparator<Entity>(){
@Override
public int compare(Entity o1, Entity o2) {
int i = (int)o1.getCode();
int j = (int)o2.getCode();
if(i > j)
return -1;//正序 return 1
else if(i <= j)
return 1;//正序 return -1
return 0;
}
});
for(Entity e : list){
System.out.println(e.getCode());
}
}
}
Arrays.sort(list, new MyComparator());
class MyComparator implements Comparator<entity> { public int compare(entity1, entity2) {
return entity1.需排序的属性- entity2.需排序的属性;
}}