posts - 75,comments - 83,trackbacks - 0

 

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;
 } 
}

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 " ));
   
Collections.sort(userlist,
new  Comparator < User > (){
public   int  compare(User arg0, User 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;
                  }  
                 }

        });
   
  
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 , ff
   
6 , gg
posted on 2009-03-16 22:19 梓枫 阅读(423) 评论(1)  编辑  收藏 所属分类: java

FeedBack:
# re: Collections.sort() 对 List 排序
2009-03-17 22:21 | 排序
还有一种方法,就是让User实现Comparator 接口
User implement Comparator{


public int compare(User arg0, User 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;
}
}

});
}  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问