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

java 对list进行排序

2015-07-15 14:53 357 查看
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   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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: