List.stream().sorted((s1,s2)
时间: 2023-10-25 16:26:43 浏览: 74
) -> {
return s1.compareTo(s2);
}
这段代码是使用Java 8的Lambda表达式对一个List进行排序。通过调用List的stream()方法可以获取一个Stream对象,然后可以使用sorted()方法对元素进行排序。在sorted()方法中传入一个Comparator接口的实现,使用Lambda表达式指定比较逻辑。在这个例子中,比较逻辑是通过调用字符串的compareTo()方法比较两个字符串的大小。Lambda表达式的语法是使用箭头操作符 -> 将参数和方法体分隔开,参数在箭头前面,方法体在箭头后面。因此,这段代码的意思是对List中的元素进行排序,按照字符串的自然顺序进行比较。
相关问题
list.stream 排序
可以使用 list.stream().sorted() 方法对 List 进行排序,例如:
```
List<Integer> list = Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5, 3);
List<Integer> sortedList = list.stream().sorted().collect(Collectors.toList());
System.out.println(sortedList);
```
输出结果为:[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]
如果要进行自定义排序,可以使用 sorted(Comparator<T> comparator) 方法,例如:
```
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
List<String> sortedList = list.stream().sorted((s1, s2) -> s1.compareTo(s2)).collect(Collectors.toList());
System.out.println(sortedList);
```
输出结果为:[apple, banana, orange, pear]
java.util.stream.Stream#sorted(java.util.Comparator<? super T>)
java.util.stream.Stream#sorted(java.util.Comparator<? super T>)是Java 8中Stream API提供的一个方法,用于对Stream中的元素进行自定义排序。该方法接收一个Comparator对象作为参数,用于比较Stream中的元素的大小关系。在排序完成后,该方法返回一个新的Stream对象,该对象包含排序后的元素。需要注意的是,该方法不会改变原有的Stream对象,而是生成一个新的Stream对象。
例如,假设有一个List<String>对象list,我们可以通过以下代码对其进行排序:
```
List<String> sortedList = list.stream()
.sorted((s1, s2) -> s1.compareTo(s2))
.collect(Collectors.toList());
```
在上面的代码中,我们首先将list转化为Stream对象,然后使用sorted方法对其进行排序,该方法接收一个Comparator对象,使用Lambda表达式实现字符串的比较。最后通过collect方法将排序后的结果保存到一个新的List中。
阅读全文