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

猜你喜欢

转载自blog.csdn.net/weixin_42406803/article/details/87289171