java面试之 list和set的区别

面试官招聘人员,可能要面试几十上百人才确定人选,怎么让自己脱颖而出?比如大家都遇到过,list和set有什么区别,你回答list有序可重复,set无效不可重复,那你和其他人没一点区别,如果你这样回答,效果会不会更好呢

List和set都是继承collection接口,存放对象,不同的是list存放有序可以重复的元素,set存放的无序不可重复元素,list比较常用的实现类有ArrayList和LinkList,Set是HashSet和TreeSet。
set如何实现不可重复元素的
先判断hashcode是否相等,如果hash码值不相同,说明是一个新元素,存,不等在通过equals判断,如果qules判断相等,说明元素已经存在,不存
ArrayList和LinkList的区别
ArrayList内部使用数组的形式实现了存储,在内存中,数组是一块连续的区域,所以在需要频繁读取集合中的元素时,使用ArrayList效率较高,LinkList是用链表的形式实现,插入和删除操作较多时,使用LinkedList效率较高。
HashSet和TreeSet的区别
HashSet是通过哈希表实现的,存的是无序数据,TreeSet 是二差树实现的,Treeset中的数据是自动排好序的,不允许放入null值。

参考:
https://www.jianshu.com/p/30a8195f0b81
https://blog.csdn.net/qq_25806863/article/details/70607204
https://blog.csdn.net/u013709270/article/details/53670956

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值