集合排序stream
时间: 2023-11-02 09:07:47 浏览: 96
集合排序stream是一种Java 8中的新特性,它可以通过Stream()对集合进行升序或者降序操作。在排序时,我们可以使用Comparator.comparing()方法来指定按照哪个属性进行排序,也可以使用reversed()方法来实现降序排序。如果需要按照多个属性进行排序,可以使用thenComparing()方法来指定多个属性的排序顺序。最后,我们可以使用collect()方法将排序后的结果收集到一个新的集合中。
下面是一些示例代码:
1. 对集合进行升序排序:
list.stream().sorted(Comparator.comparing(实体::get属性)).collect(Collectors.toList());
2. 对集合进行降序排序:
list.stream().sorted(Comparator.comparing(实体::get属性).reversed()).collect(Collectors.toList());
3. 对集合按照多个属性进行排序:
集合.stream().sorted(Comparator.comparing(实体::get属性1).thenComparing(实体::get属性2)).collect(Collectors.toList());
相关问题
集合stream 排序
如果你想要对一个集合进行排序,可以使用Java 8中的Stream API来实现。下面是一个示例代码:
```java
List<Integer> numbers = Arrays.asList(2, 5, 1, 8, 4);
List<Integer> sortedNumbers = numbers.stream()
.sorted()
.collect(Collectors.toList());
System.out.println(sortedNumbers);
```
这段代码将会输出 `[1, 2, 4, 5, 8]`,表示集合中的数字已经按从小到大的顺序排列。
在这个示例中,我们首先创建了一个包含一些数字的集合。然后,我们将集合转换为一个Stream对象,并使用它的 `sorted()` 方法对其中的元素进行排序。最后,我们使用 `collect()` 方法将排序后的结果转换回一个List对象。
你可以根据需要修改这个示例,实现不同类型的排序。例如,如果你想要按照字符串的长度排序,可以这样写:
```java
List<String> strings = Arrays.asList("apple", "banana", "orange", "pear");
List<String> sortedStrings = strings.stream()
.sorted(Comparator.comparing(String::length))
.collect(Collectors.toList());
System.out.println(sortedStrings);
```
这段代码将会输出 `["pear", "apple", "banana", "orange"]`,表示字符串已经按照长度从短到长排序。
javastream流集合排序
Java Stream API 提供了一种强大的、内存友好的方式来进行数据处理,包括排序。如果你想对Stream中的集合元素进行排序,可以使用 `sorted()` 或 `distinct().sorted()` 方法。
`sorted()` 方法用于对元素进行自然顺序排序,如果需要自定义排序规则,可以传入一个Comparator:
```java
List<Integer> numbers = Arrays.asList(5, 2, 8, 1);
numbers.stream()
.sorted(Comparator.comparingInt(Integer::valueOf)) // 自定义排序规则
.collect(Collectors.toList()); // 获取排序后的列表
```
如果你想先去重再排序,可以使用 `distinct().sorted()`:
```java
Set<String> uniqueNames = names.stream() // 假设names是一个包含重复字符串的集合
.distinct()
.sorted(String::compareTo) // 使用String的自然排序
.collect(Collectors.toSet());
```
这两个操作都不会改变原有的集合,而是返回一个新的已排序的结果。
阅读全文