每天五道面试题

1.Collection 和Collections有什么区别

Collection是Java集合定义的接口,它是所有根集合的接口
Collectioin类提供了一个对象进行集合的操作的通用方法,用于查找,删除,添加等
Collection类实现接口通过List set 实现
Conllections类是一个Java工具类,包含了各种操作集合的静态方法
Conllections类提供了一系列的静态方法,用于对集合的。排序,查找,同步,替换等
Conllections类的方法都是 通过传入集合对象作为参数来操作集合
Conllection和Conllections之间没有继承关系,Conllection是一个接口,定义了集合的同意行为
Conllections 是一个工具类,提供了对集合的操作方法 Conllections类的方法实现了Conllection类接口的具体集合对象进行操作

2.List Set Map 的区别

List 是有序不可重复 可以通过索引和修改元素
Set 是无序不可重复 不可以通过索引访问元素
Map是键值映射关系,键唯一,值可以重复 可以通过键获取值
根据需求选择适当的接口和实现类,如果需要有序的可以使用List ,如果要去重,可以使用set
如果需要用值查找 可以使用Map

3.HashMap 和Hashtable 的区别

 存储:HashMap 允许key和Value为null值 Hashtable 不允许
线程安全:HashMap 是线程安全, Hash table是非线程安全
性能:HashMap的性能比Hashtable 更好 Hashtable 方法是同步的 因此单线程环境下会产生额外的开销 性能变低 HashMap 允许使用null值 避免了对null值的判断和同步操作,有利于性能优化。

4.说一下 HashMap 的实现原理?

HashMap 基于 Hash 算法实现的,我们通过 put(key,value)存储,get(key)来获取。 当传入 key 时,HashMap 会根据 key. hashCode() 计算出 hash 值,根据 hash 值将 value 保存在 数组 里。当计算出的 hash 值相同且equals不同时,我们称之为 hash 冲突,HashMap 的 做法是用链表和红黑树存储相同 hash 值的 value。当 hash 冲突的个数比较少时,使用链表当hash冲突大于8且数组长度大于64位时使用红黑树。

5. 说一下 HashSet 的实现原理?

HashSet 是基于 HashMap 实现的,HashSet 底层使用 HashMap 来保存所有元素,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相 关方法来完成,HashSet 不允许重复的值。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值