stream流自定义排序方法
时间: 2023-12-07 13:35:57 浏览: 78
stream流自定义排序方法可以通过实现Comparator接口来实现。Comparator接口中有一个compare方法,可以根据自定义的排序规则来比较两个对象的大小。在使用sorted方法时,将自定义的Comparator对象作为参数传入即可实现自定义排序。下面是一个示例代码:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
Comparator<String> myComparator = new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length(); //按照字符串长度升序排序
}
};
List<String> sortedList = list.stream().sorted(myComparator).collect(Collectors.toList());
```
在上面的代码中,我们定义了一个字符串列表,然后实现了一个Comparator接口,按照字符串长度升序排序。最后使用sorted方法将自定义的Comparator对象传入,得到了按照字符串长度升序排序的列表。
相关问题
stream流sorted自定义排序
可以使用Java 8中的Stream.sorted()方法进行自定义排序。例如,我们可以这样实现一个按照字符串长度从小到大排序的函数:
List<String> list = Arrays.asList("apple", "banana", "pear", "orange");
List<String> sortedList = list.stream()
.sorted(Comparator.comparing(String::length))
.collect(Collectors.toList());
System.out.println(sortedList); // 输出:[pear, apple, banana, orange]
java stream流集合 自定义排序
要在Java Stream流集合中进行自定义排序,可以使用`sorted`方法结合`Comparator`来实现。以下是一个示例代码:
```java
List<Integer> numbers = Arrays.asList(5, 3, 8, 2, 1, 9);
List<Integer> sortedNumbers = numbers.stream()
.sorted(Comparator.reverseOrder()) // 使用逆序排序
.collect(Collectors.toList());
System.out.println(sortedNumbers); // 输出: [9, 8, 5, 3, 2, 1]
```
在上面的示例中,我们先创建了一个包含整数的列表`numbers`。然后,我们使用`stream`方法将列表转换为流,并使用`sorted`方法进行排序。在这个例子中,我们使用了`Comparator.reverseOrder()`来实现逆序排序。最后,我们使用`collect`方法将流转换回列表并将结果打印出来。
阅读全文