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

相关推荐
wangjialelele几秒前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
历程里程碑1 分钟前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
sin_hielo3 分钟前
leetcode 1653
数据结构·算法·leetcode
2501_901147835 分钟前
面试必看:优势洗牌
笔记·学习·算法·面试·职场和发展
李日灐6 分钟前
C++进阶必备:红黑树从 0 到 1: 手撕底层,带你搞懂平衡二叉树的平衡逻辑与黑高检验
开发语言·数据结构·c++·后端·面试·红黑树·自平衡二叉搜索树
晔子yy11 分钟前
如何设计让你的程序同时处理10w条数据
java
熬夜有啥好13 分钟前
数据结构——排序与查找
数据结构
YuTaoShao14 分钟前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法二)排序 + 二分查找
数据结构·算法·leetcode
wangluoqi15 分钟前
26.2.6练习总结
数据结构·算法
Yvonne爱编码17 分钟前
链表高频 6 题精讲 | 从入门到熟练掌握链表操作
java·数据结构·链表