Set跟HashSet有什么区别

aaaaaaaaten
浏览 4612回答 2
2回答

大咪

hashset是set的实现类,set是接口,set下面最主要的实现类就是hashset(也就是用的最多的),除此之外的实现类还有linkedhashset,treeset....... //Set存储的元素是无序的,是不可重复的! hashset特点: //1.无序性:无序性 != 随机性。真正的无序性,指的是元素在底层存储的位置是无序的。(根据hash值来存) //2.不可重复性:当向Set中添加进相同的元素的时候,后面的这个不能添加进去。 //说明:要求添加进Set中的元素所在的类,一定要重写equals()和hashcode()方法。进而保证set中元素的不可重复性! //set中的元素时如何存储的呢?使用了哈希算法。 //当向set中添加元素时,首先调用此对象所在类的hashCode()方法,计算此对象的hash值,此哈希值决定了此对象在set中的存储位置,若此位置之前没有对象存储,则此对象直接存到这个位置。(就好比一个教室,按号入座一样),若已有对象存储,在通过equals()方法比较这两个对象的是否相同,如果相同后一个对象不能再添加进来。 //万一返回false呢?都存储。(不建议如此) //>要求:hashcode()方法要与equals()方法一致。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java