List,Set,Map三者的区别?
1.面试题一:你说说collection里面有什么子类?
(其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set)
其实.list和set都是实现了collection接口的
list:有序可重复,可以插入多个null对象
set:无序不重复(只允许一个null对象 )
2.面试题二:请说说List,Set,Map三者的区别?
* List:有序可重复,可以插入多个null对象;
* Set:无序不重复(只允许一个null对象 );
* Map不是collection的子接口或者实现类,Map是一个接口,Map 的 每个 Entry 都持有两个对象,也就是一个键一个值,Map 可能会持有相同的值对象但键对象必须是唯一的。(Map 里你可以拥有随意个 null 值但最多只能有一个 null 键).
3.面试题三:请说说HashMap、TreeMap和HashTable的区别?
首先三者都是Map接口的实现类
- TreeMap是有序的,HashTable和HashMap是无序的.
- HashTable的方法是同步的(Hashtable的所有 public 方法声明中都有synchronized关键字),也就意味着线程安全,HashMap方法不是同步的,所以线程不安全.HashMap效率较高,Hashtable效率较低。
- Hashtable不允许null值,HashMap允许null值(key和value都允许)
- 父类不同:Hashtable的父类是Dictionary,HashMap的父类是AbstractMap
- Hashtable中hash数组默认大小是11,增加的方式是 old*2+1。HashMap数组大小默认16.而且是2的指数
在JDK1.8之后,解决哈希冲突,当链表的长度大于8的时候,将链表化为红黑树,减少搜索时间。
4.面试题四:HashMap 和HashSet 的区别?
- HashMap实现了Map接口 HashSet实现了Set接口
- HashMap存放的是key value键值对,HashSet存放的是对象
- HashMap使用put()方法将元素放入map中 HashSet使用add()方法将元素放入set中
- HashMap比较快,因为是使用唯一的键来获取对象 => HashSet较HashMap来说比较慢
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~