对list排序使用Collections.sort()方法可以实现。
对一个List<Integer>的list排序:
Collections.sort(intList);
对一个List<Object>的list排序:
因为是对象,所以需要重写compare方法,然后用对象的属性来进行对比。
按字幕a-z的顺序来进行排序(根据ascii值进行对比):
public class ListSort {
public static void main(String[] args) {
List<City> cityList = new ArrayList<City>();
cityList.add(new City("北京", "beijing"));
cityList.add(new City("杭州", "hangzhou"));
cityList.add(new City("上海", "shanghai"));
cityList.add(new City("西安", "xian"));
cityList.add(new City("深圳", "shenzhen"));
cityList.add(new City("澳门", "aomen"));
Collections.sort(cityList, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
City city1=(City)o1;
City city2=(City)o2;
int ascii1 = (int) (city1.getCode().toCharArray()[0]);
int ascii2 = (int) (city2.getCode().toCharArray()[0]);
if(ascii1>ascii2){
return 1;
}else if(ascii1==ascii2){
return 0;
}else{
return -1;
}
}
});
for (int i = 0; i < cityList.size(); i++) {
System.out.println(cityList.get(i).toString());
}
}
}
class City {
private String name;
private String code;
@Override
public String toString() {
return "City [name=" + name + ", code=" + code + "]";
}
public City(String name, String code) {
this.name = name;
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
按整数大小来进行排序(根据ascii值进行对比):
Collections.sort(list, new Comparator(){
@Override
public int compare(Object o1, Object o2) {
Student stu1=(Student)o1;
Student stu2=(Student)o2;
if(stu1.getAge()>stu2.getAge()){
return 1;
}else if(stu1.getAge()==stu2.getAge()){
return 0;
}else{
return -1;
}
}
});
转载一篇关于对象list排序的博文