Java后端面试题答案第一部分

List 和 Set 的区别

List , Set 都是继承自 Collection 接口  List 特点:元素有放入顺序,元素可重复 ,

Set 特点:元素无放入顺序,元素不可重复,重复元素会覆盖掉,(元素虽然无放入顺序,但是元素在set中的位

置是有该元素的 HashCode 决定的,其位置其实是固定的,加入Set 的 Object 必须定义 equals ()方法 ,另外list

支持for循环,也就是通过下标来遍历,也可以用迭代器,但是set只能用迭代,因为他无序,无法用下标来取得想

要的值。) Set和List对比 Set:检索元素效率低下,删除和插入效率高,插入和删除不会引起元素位置改变。

List:和数组类似,List可以动态增长,查找元素效率高,插入删除元素效率低,因为会引起其他元素位置改变

HashSet 是如何保证不重复的

向 HashSet 中 add ()元素时,判断元素是否存在的依据,不仅要比较hash值,同时还要结合 equles 方法比较。

HashSet 中的 add ()方法会使用 HashMap 的 add ()方法。以下是 HashSet 部分源码:

......


链接:https://pan.baidu.com/s/1CYg0SrvYNfl_o0Fgt49hwg 

提取码:e84v    复制这段内容后打开百度网盘手机App,操作更方便哦


猜你喜欢

转载自blog.51cto.com/10983206/2563819