list.stream().sorted(Comparator.comparing)
时间: 2023-07-21 22:32:49 浏览: 66
这是一个 Java 8 中对 List 排序的代码,其中使用了 Stream API 和 Comparator 接口的实现。具体来说,通过调用 List 对象的 stream() 方法将其转换为 Stream 对象,然后使用 sorted 方法对其进行排序。sorted 方法中传入一个 Comparator.comparing() 方法,该方法可以根据指定的属性对对象进行比较排序。具体使用时需要在 comparing 方法中指定比较的属性,例如:
```
List<Person> persons = new ArrayList<>();
persons.stream().sorted(Comparator.comparing(Person::getName));
```
这段代码将对 Person 对象集合按照姓名属性进行升序排序。
相关问题
List.stream().sorted
List.stream().sorted()是Java Stream API中的方法,用于对List中的元素进行排序。该方法返回一个按照自然顺序或者指定比较器排序后的流。你可以根据需要选择使用默认的自然顺序或者自定义的比较器来进行排序。
例如,你可以使用sorted()方法按照元素的自然顺序进行排序,示例如下:
List<String> list = Arrays.asList("c", "a", "b");
List<String> sortedList = list.stream()
.sorted()
.collect(Collectors.toList());
// sortedList = ["a", "b", "c"]
如果你想按照自定义的排序规则进行排序,你可以使用Comparator接口来实现。例如,按照学生的年龄进行降序排序,示例如下:
List<Student> studentList = ... // 假设有一个Student对象的列表
List<Student> sortedList = studentList.stream()
.sorted(Comparator.comparing(Student::getAge).reversed())
.collect(Collectors.toList());
// sortedList为按照学生年龄降序排序后的列表
另外一个实现排序的方法是使用List的sort()方法,该方法在List接口中定义。你可以通过调用List.sort(Comparator<? super E> c)方法来对List中的元素进行排序。排序会直接修改List中的元素的顺序,示例如下:
List<String> list = Arrays.asList("c", "a", "b");
list.sort(Comparator.naturalOrder());
// list = ["a", "b", "c"]
综上所述,List.stream().sorted()方法可以用于对List中的元素进行排序,可以选择使用默认的自然顺序或者自定义的比较器来实现。另外,你也可以使用List的sort()方法来修改List中元素的顺序。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Java的集合排序:Collections.sort、list.sort和list.stream().sorted方法详解](https://blog.csdn.net/qq_42971035/article/details/109132219)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
list.stream().sorted无效
根据提供的引用内容,list.stream().sorted无效的原因可能是没有正确地指定排序的方式。在引用中,如果想按照年龄排序,再按照姓名排序,可以使用Comparator.comparing方法,并传入Person::getAge和Person::getName作为参数,示例如下:
Object[] object = list.stream().sorted(Comparator.comparing(Person::getAge).thenComparing(Person::getName)).toArray();
而在引用中,如果想按照年龄降序排序,再按照姓名升序排序,可以使用Comparator.comparing方法,然后调用reversed方法将排序结果反转,示例如下:
Object[] object = list.stream().sorted(Comparator.comparing(Person::getAge).reversed().thenComparing(Person::getName)).toArray();
最后,在引用中,如果想按照年龄倒序排序,可以使用Comparator.comparing方法,然后调用reversed方法将排序结果反转,示例如下:
Object[] object = list.stream().sorted(Comparator.comparing(Person::getAge).reversed()).toArray();<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Stream sorted的使用以及注意事项](https://blog.csdn.net/apple_51491580/article/details/115708209)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]