针对ArrayList中的某个属性进行排序
1.创建要比较的对象
public class ExampleObj{
private Long prop;
private String name;
public ExampleObj(Long prop,String name){
this.prop= prop;
this.name= name;
}
public Long getProp() {
return prop;
}
public void setProp(Long prop) {
this.prop= prop;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2.实现java.util.Comparator<T>接口
import java.io.Serializable;
import java.util.Comparator;public class ComparatorExampleObj implements Comparator<ExampleObj>,Serializable {
public int compare(ExampleObj o1, ExampleObj o2) {
ExampleObj p1 = (ExampleObj) o1;
ExampleObj p2 = (ExampleObj) o2;
//按升序排列
if (p1.getProp() > p2.getProp())
return 1;
else
return 0;
}
}
3.排序
ArrayList list = new ArrayList();
list.add(new ExampleObj (1,"name1"));
list.add(new ExampleObj (3,"name3"));
list.add(new ExampleObj (2,"name2"));
ComparatorExampleObj comp = new ComparatorExampleObj ();
Collections.sort(list,comp); //此时list为以按prop属性进行过升序排序的集合类