java 使用Lambda对集合排序

您所在的位置:网站首页 自定义listsort java 使用Lambda对集合排序

java 使用Lambda对集合排序

2023-12-09 12:11| 来源: 网络整理| 查看: 265

一、利用lambda对list集合排序

       先定义一个集合

List list = new ArrayList(); list.add(1); list.add(5); list.add(4); list.add(3); list.add(7);

1、升序排序

list.sort((a,b)->a.compareTo(b));

或者

list.sort(Comparator.comparing(a->a));

或者

list.sort((a,b)->a-b);

或者

// 2、匿名内部类 list.sort(new Comparator() { @Override public int compare(Integer o1, Integer o2) { return o1-o2; } });

2、降序

(1): list.sort((a,b)->b-a);

(2):2、匿名内部类

            list.sort(new Comparator() {                   @Override                   public int compare(Integer o1, Integer o2) {                          return o2-o1;                   }             });

2、对对象集合操作,其实与基本类型集合操作类似

List list1 = new ArrayList(); User user = new User("张三", "15", "男"); User user1 = new User("李四", "10", "男"); list1.add(user); list1.add(user1); //1、年龄升序 list1.sort((a,b) -> a.getAge().compareTo(b.getAge())); //2、姓名降序排列 list1.sort(Comparator.comparing(User::getName).reversed()); //等价于 2 list1.sort(Comparator.comparing(a->((User)a).getAge()).reversed()); //3、先按性别排,如果年龄相同,再按年龄排序 list1.sort(Comparator.comparing(User::getSex).reversed().thenComparing(User::getAge));

 

3、对 JSONArray 排序

定义一个json数组 resultArray

JSONArray resultArray = new JSONArray(); JSONObject result = new JSONObject(); result.put("name","张三"); result.put("age","15"); result.put("data","201812130451"); resultArray.add(result); //根据姓名的倒序排序 resultArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getString("name")).reversed()); //根据时间倒序排序 resultArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getData("data")).reversed()); //根据年龄升序排序 resultArray.sort(Comparator.comparing(obj -> ((JSONObject) obj).getInteger("age")));

注意:reversed()函数的意思是将数组颠倒。其用法常见于字符串处理中,将字符串颠倒 如: String str = "abcd"; StringBuffer sb = new StringBuffer(str); sb.reverse(); System.out.println(str); System.out.println(sb.toString());

控制台输出

 

 

 

 

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3