对List用sort()方法进行排序,一共有两种方法(这里是在Android Studio中实现的)。
1.让List内部的类实现Comparable接口,再重写compareTo()方法,在这个方法中处理排序过程。
List的内部的类如下:
public class User implements Comparable <User>{
private Integer age;//注意,这里的类型必须是包装类才行,不能是基本数据类型,否则,不能
private String name; //调用compareTo()方法
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int compareTo(User another) {
return this.getAge().compareTo(another.getAge());//只对list内部的age进行排序
}
}
具体调用实现:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); User user1=new User(); user1.setAge(100); list.add(user1); User user2=new User(); user2.setAge(200); list.add(user2); User user3=new User(); user3.setAge(50); list.add(user3); Collections.sort(list);//对list内部的age进行排序 textView.setText(list.get(0).getAge()+"");//结果是50,排序成功。}2 .第二种方法是不对类进行修改,不需要类实现 Comparable接口,需要在调用的地方重写compareTo()方法。
具体实现如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); User user1=new User(); user1.setAge(100); list.add(user1); User user2=new User(); user2.setAge(200); list.add(user2); User user3=new User(); user3.setAge(50); list.add(user3); Collections.sort(list, new Comparator<User>() {//重写sort方法 @Override public int compare(User lhs, User rhs) { return lhs.getAge().compareTo(rhs.getAge()); } }); textView.setText(list.get(0).getAge()+"");//结果是50}排序结束。