这段代码先按照name字段进行排序,如果name相同,则按照age字段进行排序。 3.4 执行排序 最后,我们可以使用List的sort()方法执行排序。比如,我们可以按照byName规则对persons进行排序: persons.sort(byName); 1. 或者按照byNameThenAge规则进行排序: persons.sort(byNameThenAge); 1. 4. 示例 下面是一个完整的示例代码...
在需求中,通常一个字段并不能满足排序的需求,比如我们希望先按年龄排序,若年龄相同则按姓名排序。这时我们可以使用Comparator的thenComparing方法进行多字段排序。 importjava.util.Arrays;importjava.util.Comparator;importjava.util.List;publicclassMain{publicstaticvoidmain(String[]args){List<Person>people=Arrays.asL...
//普通listList<Integer> ids =newArrayList<Integer>() {{add(1);add(5);add(8);add(3); }};//升序Collections.sort(ids);//降序ids.sort(Comparator.reverseOrder()); 2.2对象集合 2.2.1单属性排序 // 1.根据年龄升序List<Student> ageAscList = studentList.stream() .sorted(Comparator.comparing(...
判断开始时间是否相同,不同的情况下按照开始时间排序,相同的情况下按照结束时间排序。 list=list.stream().sorted((map1,map2)->{ if (map1.get("start_time").equals(map2.get("start_time").toString())) { return map2.get("end_time").toString().compareTo(map1.get("end_time").toString()...
排序: List<Order>orders=Lists.newArrayList();// 按照订单总金额从高到低排序// 方式一orders.sort((o1,o2)->o1.getAllAmt()==null?1:(o2.getAllAmt()==null?-1:o2.getAllAmt().compareTo(o1.getAllAmt()));// 方式二orders.sort(Comparator.comparing(Order::getAllAmt,(o1,o2)->o1==null...
.collect(Collectors.toList());//多个属性排序,按title、hot排序降序,hot需转成数字进行排序List<News> titleAndHotSortList =initList.stream().sorted(Comparator.comparing(News::getTitle) .thenComparing((v1, v2)->Integer.valueOf(v2.getHot()).compareTo(Integer.valueOf(v1.getHot())) .collect...
今天栈长就分享 Java 8 进行排序的 10 个姿势,原来还有这么多排序技巧,其实就是把 Java 8 中的 Lambda、Stream、方法引用等知识点串起来,栈长的同事直呼还看不懂。。 传统排序 现在有一个 List 集合: public static List<User> LIST = new ArrayList() { ...
1.按照字母顺序排序字符串 /** * String sort(不区分大小写) */privatestaticvoidsortStringInsentive(){List<String>originalList=Arrays.asList("Apache","apache","aapache","bpache","Bpache","bapache");originalList.sort(String.CASE_INSENSITIVE_ORDER);System.out.println(originalList);}/** ...
//返回 对象集合以类属性一升序排序 list.stream().sorted(Comparator.comparing(类::属性一)); //返回 对象集合以类属性一降序排序 注意两种写法 list.stream().sorted(Comparator.comparing(类::属性一).reversed());//先以属性一升序,结果进行属性一降序 ...