java中对list排序问题
2016-05-07 10:45
465 查看
1、 如果list集合里面存放的是基础数据类型和String 怎么可以直接调用 Collections类的sort() 方法
但是这种方法只能是ASC升序排序 如果想要DESC降序排序则必须 重写 Collections.sort 的 compare方法
2、 list里面存放的是对象 则 重写 Collections.sort 的 compare方法 比较对象的某个属性 当然也可以是对个属性
List<String> list = new ArrayList<String>(); list.add("2"); list.add("1"); list.add("4"); list.add("3"); Collections.sort(list);
但是这种方法只能是ASC升序排序 如果想要DESC降序排序则必须 重写 Collections.sort 的 compare方法
final String type = "DESC"; Collections.sort(list, new Comparator<String>() { @Override public int compare(String o1, String o2) { Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type)); return sortType ? o1.compareTo(o2) : o2.compareTo(o1) ; } });
2、 list里面存放的是对象 则 重写 Collections.sort 的 compare方法 比较对象的某个属性 当然也可以是对个属性
final String type = "DESC"; Collections.sort(list, new Comparator<Cat>() { @Override public int compare(Cat o1, Cat o2) { Boolean sortType = (StringUtils.isEmpty(type) || "ASC".equals(type)); Integer size = o1.getSize(); Integer size1 = o2.getSize(); return sortType ? size.compareTo(size1) : size1.compareTo(size) ; } });
相关文章推荐
- Java GUI编程中AWT/swing/SWT的优缺点
- 排序算法java三--堆排序
- java enum(枚举)使用详解 + 总结
- Java多线程学习
- java list 数组 转换
- Java 时间 转换/Date(1384171247000+0800)/
- 趣谈Java变量的可见性问题
- Java IO流中的flush()
- Struts2中Action接收参数的方法
- 在Java中使用WebSocket实现网页聊天室
- Timer
- java中的Properties类的操作
- JVM运行时数据区域
- Java解析JSON文件的方法
- Myeclipse启动不了的解决方法
- Java设计模式编程中的责任链模式使用示例
- 断言---java
- java swing游戏编程高仿金山打字教程-拯救苹果
- java中超大大数字的计算方法
- 写一个自己的获取路径帮助类