当前位置: 代码迷 >> Android >> Android会合中对象排序
  详细解决方案

Android会合中对象排序

热度:32   发布时间:2016-04-28 02:44:32.0
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;	}}

?

  相关解决方案