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 后排序

相关推荐
JAVA面经实录91710 小时前
Java企业级工程化·终极完整版背诵手册(无遗漏、全覆盖、面试+落地通用)
java·开发语言·面试
叼烟扛炮11 小时前
C++第二讲:类和对象(上)
数据结构·c++·算法·类和对象·struct·实例化
许彰午12 小时前
CacheSQL(二):主从复制——OpLog 环形缓冲区与故障自动恢复
java·数据库·缓存
小程故事多_8012 小时前
[大模型面试系列] 多轮对话 Agent 设计实战(含窗口优化 + 工具调用精髓)
人工智能·面试·职场和发展
Bat U13 小时前
JavaEE|多线程初阶(七)
java·开发语言
MegaDataFlowers15 小时前
206.反转链表
数据结构·链表
掌心向暖RPA自动化15 小时前
如何获取网页某个元素在屏幕可见部分的中心坐标影刀RPA懒加载坐标定位技巧
java·javascript·自动化·rpa·影刀rpa
日取其半万世不竭16 小时前
Minecraft Java版社区服务器搭建教程(Linux,适合新手)
java·linux·服务器
CN-Dust16 小时前
【C++】while语句例题专题
数据结构·c++·算法
TeamDev16 小时前
JxBrowser 9.0.0 版本发布啦!
java·前端·混合应用·jxbrowser·浏览器控件·跨平台渲染·原声输入