java面试-0215-HashMap有序吗?Comparable和Comparator区别?集合如何排序?

HashMap:无序,元素根据哈希值随机插入。遍历顺序不保证与插入顺序一致,且修改(如扩容)可能改变顺序

Comparable:

接口定义在类内部,compareTo(T o) 方法比较当前对象与另一对象。

修改类实现自然排序(如 String 的字母序)。

Comparator:

独立类实现,compare(T o1, T o2) 方法比较两个对象。

灵活定义外部排序规则,无需修改原类。

List: Collections.sort(list)(需元素实现 Comparable)或 Collections.sort(list, comparator)(自定义 Comparator)

Set:TreeSet 自动排序(基于 Comparable 或构造时传入 Comparator)

Map:TreeMap 按键自动排序(基于 Comparable 或构造时传入 Comparator)

其他转为 List 或 TreeSet/TreeMap 后排序

相关推荐
camellias_3 小时前
【无标题】
java·tomcat
咸鱼2.03 小时前
【java入门到放弃】需要背诵
java·开发语言
ZK_H3 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
澈2073 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法
椰猫子3 小时前
Java:异常(exception)
java·开发语言
ambition202424 小时前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先
代码旅人ing4 小时前
链表算法刷题指南
数据结构·算法·链表
win x4 小时前
Redis 使用~如何在Java中连接使用redis
java·数据库·redis
星晨雪海5 小时前
基于 @Resource 的支付 Service 多实现类完整示例
java·开发语言
阿维的博客日记5 小时前
什么是逃逸分析
java·juc