Android集合中对象排序

版权所有,禁止匿名转载;禁止商业使用。

如果将集合中的对象进行排序,最近使用了一个简单的方法解决了,随笔记下来。


主要思路:


首先,新建类实现Comparator<?>,这个类是做比较的关键类,一般做比较的类型 int 或 String类型。


如果属性为Int类型比较方式为    rhs.getAge() - lhs.getAge();


如果属性为String类型方式为     rhs.getName.compareTo(lhs.Name);


以上为降序写法, 如果是升序将 rhs与lhs顺序颠倒即可。


public class order implements Comparator<Model> {
@Override
public int compare(Model lhs, Model rhs) {
// TODO Auto-generated method stub
return rhs.getAge() - lhs.getAge();
}
}

第二、做一个测试类,测试一下比较的结果。


注意下面Collections.sort(mm, new order())方法,括号里面参数1为要排序的实体集合,第二个参数为上面


写比较方法的类。


public class MainActivity extends Activity {
public List<Model> mm = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mm = new ArrayList<Model>();
for (int i = 0; i < 3; i++) {
Model model = new Model();
model.setAge(11 + i);
model.setId(22);
model.setName("asdf");
mm.add(model);
}
Collections.sort(mm, new order());
for (int i = 0; i < mm.size(); i++) {
int age = mm.get(i).getAge();
System.out.println("------------->" + age);
}
}
}

输出结果



以下是实体类


public class Model {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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;
}
}


0 0