您的位置:首页 > 编程语言 > Java开发

java List 排序 Collections.sort() 对 List 排序

2013-12-25 11:03 561 查看
//一个POJO例子

class User {

String name;

String age;

public User(String name,String age){

this.name=name;

this.age=age;

}

public String getAge() {

return age;

}

public void setAge(String age) {

this.age = age;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

//具体的比较类,实现Comparator接口

import java.util.Comparator;

import java.util.List;

import java.util.ArrayList;

import java.util.Collections;

public class ComparatorUser implements Comparator{

public int compare(Object arg0, Object arg1) {

User user0=(User)arg0;

User user1=(User)arg1;

//首先比较年龄,如果年龄相同,则比较名字

int flag=user0.getAge().compareTo(user1.getAge());

if(flag==0){

return user0.getName().compareTo(user1.getName());

}else{

return flag;

}

}

}

//测试类

public class SortTest {

public static void main(String[] args){

List userlist=new ArrayList();

userlist.add(new User("dd","4"));

userlist.add(new User("aa","1"));

userlist.add(new User("ee","5"));

userlist.add(new User("bb","2"));

userlist.add(new User("ff","5"));

userlist.add(new User("cc","3"));

userlist.add(new User("gg","6"));

ComparatorUser comparator=new ComparatorUser();

Collections.sort(userlist, comparator);

for (int i=0;i<userlist.size();i++){

User user_temp=(User)userlist.get(i);

System.out.println(user_temp.getAge()+","+user_temp.getName());

}

}

}

//首先年龄排序,如果年龄相同,则按名字排序

结果:

1, aa

2, bb

3, cc

4, dd

5, ee //注意:同样是5岁的人,则比较名字(ee,ff),然后排序

5, ff

6, gg
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: