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

相关推荐
plainGeekDev13 分钟前
Android内存面试题:OOM都解决不了,性能优化从何谈起?
android·面试·kotlin
莫雪歌28 分钟前
Java AI 应用开发实践:基于 Spring Boot 实现 Chat、Memory、RAG 与 Tool Calling
java·aigc
SmartBrain1 小时前
AI全栈开发(SDD):慢病管理系统工程级设计
java·大数据·开发语言·人工智能·架构·aigc
梦想CAD控件1 小时前
网页端对DWG图纸进行预览与批注(CAD轻量化)
java·前端·javascript
老毛肚2 小时前
Spring boot 特性和自写Reids组件
java·spring boot·后端
蝎子莱莱爱打怪2 小时前
👍🏻👍🏻6年381颗芯片+韬定律,华为重新定义半导体,为什么还有人喷???
后端·面试·程序员
极光代码工作室2 小时前
基于SpringBoot的课程管理系统
java·springboot·web开发·后端开发
JustNow_Man2 小时前
【opencode】安装使用daytona沙箱插件
android·java·javascript
武子康2 小时前
Java-05 深入浅出 MyBatis动态SQL与参数拼接完全指南
java·spring boot·后端
过期动态2 小时前
【LeetCode 热题 100】字母异位分组
java·算法·leetcode·职场和发展·哈希算法