stream自定义排序
时间: 2023-08-26 15:18:45 浏览: 61
自定义排序可以通过使用Stream的sorted()方法结合Comparator来实现。首先,你可以创建一个实现Comparator接口的匿名类或者使用Lambda表达式来定义自定义排序规则。然后,将这个Comparator作为参数传递给sorted()方法。这样,流中的元素就会按照你指定的自定义排序规则进行排序。
例如,如果你有一个包含Person对象的流,你可以按照他们的年龄进行排序,可以使用如下的代码:
stream.sorted((p1, p2) -> p1.getAge() - p2.getAge())
在上述代码中,我们使用Lambda表达式创建了一个Comparator实例,比较了两个Person对象的年龄。通过调用sorted()方法并传递这个Comparator实例,流中的Person对象将按照年龄进行排序。
另外,你也可以使用Comparator的reversed()方法来实现反向排序。例如,如果你想按照年龄降序排序,可以使用如下的代码:
stream.sorted((p1, p2) -> p2.getAge() - p1.getAge())
在这个例子中,我们交换了比较的顺序,使得年龄较大的Person对象排在前面,实现了按照年龄降序排序。
总的来说,使用sorted()方法和Comparator可以实现流的自定义排序。你可以根据具体的需求定义Comparator来指定排序规则,然后将其传递给sorted()方法即可。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Java8 stream 排序以及自定义比较器,很实用](https://blog.csdn.net/xiaohao718/article/details/125379045)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Java8 stream 多条件排序,且支持自定义排序](https://blog.csdn.net/weixin_41753664/article/details/123198505)[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^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]