Set存储元素为啥是唯一的(以HashSet为例源码分析)

本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作,如有错误之处忘不吝批评指正!

说些废话

  以前面试的时候会遇到有人问Set 和list的区别 这个很好说,但前几天有同事面试分享了面试过程 问到了 Set和List区别了,同事回答了!紧接着 面试官问Set问啥可以保证存储的值不会重复,他说他的表情瞬间凝固了,逗乐了我!其实我也不是很清楚,决定研究一下源码,以下源码基于jdk1.8

源码分析

 

变量定义

// HashSet存储数据是放在HashMap中的   private transient HashMap<E,Object> map; //Dummy value to associate with an Object in the backing Map private static final Object PRESENT = new Object();

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzpjpz.html