对List用sort()方法进行排序,一共有两种方法(这里是在Android Studio中实现的)。ide
1.让List内部的类实现Comparable接口,再重写compareTo()方法,在这个方法中处理排序过程。this
List的内部的类以下:spa
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 }排序结束。