List 自定义排序

来源:互联网 发布:java泛型里的? 编辑:程序博客网 时间:2024/06/05 02:41


class User {
private String name = "";
private int age = 1;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
 
 


    @SuppressWarnings("unchecked")  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        List listInt = new ArrayList(),  
                listStr = new ArrayList();  
        //自定义Comparator对象,自定义排序  
        Comparator c = new Comparator<User>() {  
            @Override  
            public int compare(User o1, User o2) {  
                // TODO Auto-generated method stub  
                if(o1.getAge() < o2.getAge()){
                return -1;  
                }else{
                return 1;  
                }
               //注意!!返回值必须是一对相反数,否则无效。jdk1.7以后就是这样。  
               //      else return 0; //无效  
            }  
        };    
        User u1 =new User();
        u1.setAge(5);
        User u2 =new User();
        u2.setAge(2);
        User u3 =new User();
        u1.setAge(10);
        
        
//        listInt.add(2);     listInt.add(4);     listInt.add(9);     listInt.add(5);  
        listStr.add(u1);  
        listStr.add(u2);  
        listStr.add(u3);  
//        listStr.add("Ti");  
//        @SuppressWarnings("rawtypes")  
//        List list01 = new ArrayList(listInt);  
//        List list02 = new ArrayList(listInt);  
//          
//        Collections.sort(listInt);  
//        Collections.sort(listStr);  
//        list01.sort(c);  
        Collections.sort(listStr,c);  
          
//        System.out.println(listInt); 
        for (Object object : listStr) {

        System.out.println(((User)object).getAge());  
}
//        System.out.println(list01);  
//        System.out.println(list02);  
  
    }


原创粉丝点击