对list内部排序

package core.java.collection.collections;  


public class User implements Comparable{  


private int score;  


private int age;  


public User(int score, int age){  

super();  

this.score = score;  

this.age = age;  

    }  


public int getScore() {  

return score;  

    }  


public void setScore(int score) {  

this.score = score;  

    }  


public int getAge() {  

return age;  

    }  


public void setAge(int age) {  

this.age = age;  

    }  


@Override  

public int compareTo(User o) {  

int i = this.getAge() - o.getAge();//先按照年龄排序  

if(i == 0){  

return this.score - o.getScore();//如果年龄相等了再用分数进行排序  

        }  

return i;  

    }  


}  


public static void main(String[] args) {  

List users =new ArrayList();  

users.add(new User(78, 26));  

users.add(new User(67, 23));  

users.add(new User(34, 56));  

users.add(new User(55, 23));  

        Collections.sort(users);  

for(User user : users){  

System.out.println(user.getScore() +"," + user.getAge());  

        }  

}  

输出结果:

55,23

67,23

78,26

34,56

我们会发现sort(List)方法中List中的T必须实现Comparable接口,然后实现

compareTo()方法,该方法的返回值0代表相等,1表示大于,-1表示小于;为什么

在简单例子中没有看到实现Comparable接口呢?是因为Integer类其实自己已经实现

了Comparable接口,Java已经给我们做好了。

你可能感兴趣的:(对list内部排序)