List列表按照对象进行排序
来源:互联网 发布:淘宝上开代购店 编辑:程序博客网 时间:2024/05/21 03:18
在某些业务场景下需要根据list列表中对象的字段进行排序。今天就以实例说明:
实体类
public class Product { private int discount; // 省略getter/setter方法}
排序测试类
public class TestSortList { @Test public void test1(){ List<Product> list = new ArrayList<>(3); Product p1 = new Product(); p1.setDiscount(1); list.add(p1); Product p2 = new Product(); p2.setDiscount(2); list.add(p2); Product p3 = new Product(); p3.setDiscount(3); list.add(p3); Collections.sort(list, new Comparator<Product>() { @Override public int compare(Product o1, Product o2) { if(o1.getDiscount() > o2.getDiscount()){ return 1; } else if(o1.getDiscount() == o2.getDiscount()){ return 0; } else { return -1; } } }); for(Product product : list){ System.out.println(product.getDiscount()); } }}
打印结果:
123
这样就完成了一个升序的排序。如果需要降序的排序秩序将o1.getDiscount() > o2.getDiscount()前后调换位置就可以了。
其他
在jdk8中,引入了lambda表达式的写法,因此排序部分代码可简化为:
Collections.sort(list, (o1, o2) -> { if(o2.getDiscount() > o1.getDiscount()){ return 1; } else if(o1.getDiscount() == o2.getDiscount()){ return 0; } else { return -1; } });
另外网络上也提供了通用的List排序工具方法,可自行参考学习。
阅读全文
2 0
- List列表按照对象进行排序
- 对象列表按照某字段进行排序
- C# List按照对象属性进行排序
- List集合按照日期字段进行排序
- List按照多个字段进行排序
- Java按照List内存储的对象的某个字段进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- java list按照元素对象的指定多个字段属性进行排序
- list内对象按照指定字段排序
- 按照list中对象的属性排序
- list中对象按照属性排序
- 按照对象的某一属性进行排序
- js 按照对象某一个属性进行排序
- Python 列表中存储类对象时按照指定属性进行排序——用于正排表的排序
- 在一个list列表中的多个dict字典按照键值对key-value来进行排序
- Swift3.0学习之ScrollView的简单使用
- 很详细的unity脚本函数调用
- PL/SQL:记录 / 集合例子
- C++多线程编程(入门实例)
- linux使用initramfs、initrd、Flash文件系统时内核分别的编译配置
- List列表按照对象进行排序
- Android Studio GIT 仓库地址 变更 方法
- Android Wi-Fi 开启SSR调试功能(基于QCOM平台)
- 最简单的 java 防反编译技巧
- 1_hibernate-HelloWorld
- 正则表达式
- cassandra 单数据中心多节点集群从源码编译搭建
- 微信公众号支付需要的参数以及配置
- 2017年7月-学习笔记