ArrayList里的对象按照属性排序
来源:互联网 发布:数控车床编程培训教程 编辑:程序博客网 时间:2024/05/29 13:22
前天被面试问到在集合里的对象按照某个关键字去排序的问题,当时想到了两个解决方案。
- 如果结合ORM去考虑,我会在sqlmap里写sql语句的时候用order by去排序,这样查出来获得list就是有序的。不用去排序。
- 或则是将对象取出来,然后再单独对对象去排序放到arraylist里去。这种方法麻烦点,但是是最容易想到的解决方案。
今天在朋友建议下参考了API文档,发现原来Collections有静态方法sort去定义对象属性排序,解决方案如下:
//创建一个 User对象class User{ int id; String name; 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 class SortTest { public static void main(String args[]) { //初始化一个list列表 List<User> list = new ArrayList<User>(); //初始化20个User对象,id随机 for(int i = 0;i < 10;i ++) { User user = new User(); user.setId((int)(Math.random() * 100)); user.setName("micro"); list.add(user); } //打印出 for(User user : list) { System.out.println("User的id:"+user.getId()+" User的name : "+user.getName()); } //按照id去排序 Collections.sort(list, new Comparator<User>() { @Override public int compare(User user1, User user2) { // TODO Auto-generated method stub //定义比较大小 if(user1.getId() > user2.getId()) { return 1; } else if(user1.getId() == user2.getId()) { return 0; } else { return -1; } } }); System.out.println("排序结束"); //排序结束再输出 for(User user : list) { System.out.println("User的id:"+user.getId()+" User的name : "+user.getName()); } }}
运行结果:
User的id:69 User的name : microUser的id:24 User的name : microUser的id:87 User的name : microUser的id:3 User的name : microUser的id:81 User的name : microUser的id:8 User的name : microUser的id:0 User的name : microUser的id:10 User的name : microUser的id:82 User的name : microUser的id:75 User的name : micro排序结束User的id:0 User的name : microUser的id:3 User的name : microUser的id:8 User的name : microUser的id:10 User的name : microUser的id:24 User的name : microUser的id:69 User的name : microUser的id:75 User的name : microUser的id:81 User的name : microUser的id:82 User的name : microUser的id:87 User的name : micro
如果降序排序修改为:
Collections.sort(list, new Comparator<User>() { @Override public int compare(User user1, User user2) { // TODO Auto-generated method stub //定义比较大小 if(user1.getId() > user2.getId()) { return 1; } else if(user1.getId() == user2.getId()) { return 0; } else { return -1; } } });
运行结果:
User的id:36 User的name : microUser的id:80 User的name : microUser的id:13 User的name : microUser的id:19 User的name : microUser的id:31 User的name : microUser的id:5 User的name : microUser的id:60 User的name : microUser的id:26 User的name : microUser的id:78 User的name : microUser的id:29 User的name : micro排序结束User的id:80 User的name : microUser的id:78 User的name : microUser的id:60 User的name : microUser的id:36 User的name : microUser的id:31 User的name : microUser的id:29 User的name : microUser的id:26 User的name : microUser的id:19 User的name : microUser的id:13 User的name : microUser的id:5 User的name : micro
0 0
- ArrayList里的对象按照属性排序
- 将java.util.list里的对象按照对象的某一属性排序
- 按照对象的某一属性进行排序
- 按照list中对象的属性排序
- java如何对ArrayList中对象按照该对象某属性排序
- JAVA如何对ArrayList中对象按照该对象某属性排序(实例)
- java如何对ArrayList中对象按照该对象某属性排序
- java如何对ArrayList中对象按照该对象某属性排序
- java如何对ArrayList中对象按照该对象某属性排序
- java如何对ArrayList中对象按照该对象某属性排序
- 根据ArrayList 中对象的属性排序
- 数组按照对象属性排序
- 数组的sort方法排序按照对象的属性排序
- 关于ArrayList中对象按照属性进行分类(属性相同的对象放入新的arrayList里面)
- JavaScript按照对象的某个属性进行排序
- Java集合按照对象的某个属性进行比较排序
- Java按照对象属性排序的两种方法
- 对ArrayList<T>中按照T的某个属性进行排序
- Dijkstra POJ3268 Silver Cow Party解题报告
- PLC读取EDA9033F数据
- CDC::SelectStockObject 与CDC::SelectObject
- android批量文件上传(服务器采用servlet处理)
- Find the longest substring with k unique distinct characters in a given string (Google)
- ArrayList里的对象按照属性排序
- Redis --- Redission客户端
- 如何选择响应式与自适应设计?
- Android开发学习笔记:Intent的简介以及属性的详解
- 如何做好一个网站
- 谁动了我的流量
- 剑指Offer系列---(22)顺时针打印矩阵
- Java程序调用CMD批处理
- hdu-travel