利用Comparator对Collection进行自定义排序

目录

前面

今天突然发现java集合类中的排序方式可以利用Comparator接口实现自定义,感觉很有意思,在这里与大家分享一下。

默认排序

如果我们不写自定义的排序,那么Collection默认的排序是按照字符串的字典序,考察下面代码:

SortedSet<String> strings = new TreeSet<>();
strings.addAll(Arrays.asList("yolanda", "zach", "alice", "bob"));
System.out.println("默认排序:" + strings);

输出的strings的结果为:

默认排序

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TreeMap可以通过提供Comparator接口的lambda表达式来实现自定义排序Comparator接口定义了用于比较两个对象的方法。 在创建TreeMap时,可以使用带有Comparator参数的构造函数,并通过lambda表达式传入自定义的比较器。比如: TreeMap<Key, Value> map = new TreeMap<>((a, b) -> a.compareTo(b)); 在上述lambda表达式,a和b分别代表两个要比较的键值。compare()方法可以根据你的需求来定义比较逻辑,返回一个负整数、零或正整数,表示a小于、等于或大于b。 通过使用lambda表达式和Comparator接口,你可以轻松实现自定义排序的TreeMap。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Collection集合工具类源码解读(五) --- TreeMap 和 TreeSet](https://blog.csdn.net/qq_45380083/article/details/122460648)[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: 50%"] - *2* [lambda表达式——java8如何排序Map](https://blog.csdn.net/weixin_40277684/article/details/106131799)[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: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值