炒沙作縻终不饱,缕冰文章费工巧。这篇文章主要讲述Android集合中对象排序相关的知识,希望能为你提供帮助。
如果将集合中的对象进行排序,最近使用了一个简单的方法解决了,随笔记下来。
【Android集合中对象排序】
主要思路:
首先,新建类实现Comparator<
?>
,这个类是做比较的关键类,一般做比较的类型 int 或 String类型。
如果属性为Int类型比较方式为
rhs.getAge() - lhs.getAge();
如果属性为String类型方式为
rhs.getName.compareTo(lhs.Name);
以上为降序写法,
如果是升序将 rhs与lhs顺序颠倒即可。
1 public class order implements Comparator< Model> { 2 3@Override 4public int compare(Model lhs, Model rhs) { 5// TODO Auto-generated method stub 6return rhs.getAge() - lhs.getAge(); 7} 8 9 }
第二、做一个测试类,测试一下比较的结果。
注意下面Collections.sort(mm, new order())方法,括号里面参数1为要排序的实体集合,第二个参数为上面
写比较方法的类。
1 public class MainActivity extends Activity { 2public List< Model> mm = null; 3 4@Override 5protected void onCreate(Bundle savedInstanceState) { 6super.onCreate(savedInstanceState); 7setContentView(R.layout.activity_main); 8 9mm = new ArrayList< Model> (); 10for (int i = 0; i < 3; i++) { 11Model model = new Model(); 12model.setAge(11 + i); 13model.setId(22); 14model.setName("asdf"); 15mm.add(model); 16} 17 18Collections.sort(mm, new order()); 19for (int i = 0; i < mm.size(); i++) { 20int age = mm.get(i).getAge(); 21System.out.println("-------------> " + age); 22} 23} 24 }
输出结果
文章图片
以下是实体类
1 public class Model { 2 3private int id; 4private String name; 5private int age; 6 7public int getId() { 8return id; 9} 10 11public void setId(int id) { 12this.id = id; 13} 14 15public String getName() { 16return name; 17} 18 19public void setName(String name) { 20this.name = name; 21} 22 23public int getAge() { 24return age; 25} 26 27public void setAge(int age) { 28this.age = age; 29} 30 31 }
推荐阅读
- Android弹幕框架 黑暗火焰使
- Android Tombstone 分析
- Android学习---- 十月
- 你可能不知道的 Android Studio 小技巧之「多行编辑」
- Android开发艺术探索——第二章(IPC机制(中))
- Android学习笔记--实现正在加载圆圈,加完完成自动取消
- Android性能优化之巧用软引用与弱引用优化内存使用
- 从高处理解android与服务器交互(看懂了做开发就会非常的容易)
- 利用videoView创建播放器,实现展示视频列表和搜索sd卡功能 以及android6.0的动态授权等功能