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

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

2014-11-07 19:57 405 查看
//一个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

原文:http://www.blogjava.net/zygcs/archive/2008/01/17/176032.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  list 排序