java8 集合排序 倒序
时间: 2023-05-04 12:02:04 浏览: 724
在Java8中,可以使用Comparator接口和Lambda表达式来实现集合排序并倒序。
Comparator接口用于定义两个对象之间的顺序。使用Lambda表达式可以更简单地创建Comparator对象,并定义自定义排序规则。
下面是一个示例代码,用于将一个字符串列表按照其长度排序,并按照长度的降序排列。
List<String> list = Arrays.asList("Java", "Python", "C++", "Ruby");
//排序
Collections.sort(list, (s1, s2) -> s1.length() - s2.length());
//倒序
Collections.reverse(list);
上述代码首先使用Arrays.asList()方法创建一个字符串列表,然后使用Collections.sort()方法对其进行排序,使用Lambda表达式定义了Comparator对象,该对象将两个字符串按照其长度进行比较。最后使用Collections.reverse()方法将排序后的列表倒序。
通过使用Lambda表达式和Comparator接口,Java8使得集合排序变得更加简洁易懂,为程序员提供了更加便利的编程方式。
相关问题
java 集合stream排序倒序
Java集合中的Stream是一种函数式编程的方式,可以对集合进行各种操作,其中包括排序。在Stream中,可以使用sorted()方法对集合进行排序,而且可以根据需要进行正序或倒序排序。具体实现方式如下:
1. 正序排序:list.stream().sorted(Comparator.comparing(类::属性一));
2. 倒序排序:list.stream().sorted(Comparator.comparing(类::属性一,Comparator.reverseOrder()));
其中,第一个方法是根据属性一进行正序排序,第二个方法是根据属性一进行倒序排序。在第二个方法中,使用了Comparator.reverseOrder()方法来实现倒序排序。
除此之外,还可以使用thenComparing()方法来实现多条件排序,例如先按年龄降序排序,年龄相等的话,则按年级升级排序:
resultList = resultList.stream().sorted(Comparator.comparing(User::getAge).reversed().thenComparing(Comparator.comparing(User::getGrade))).collect(Collectors.toList());
这样就可以实现按照多个条件进行排序了。
java list集合倒序排序
可以使用 Collections.reverse() 方法来对 List 集合进行倒序排序,示例代码如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Collections.reverse(list);
System.out.println(list);
输出结果为:
[orange, banana, apple]
阅读全文