基础——HashSet会合底层原理0523
基础——HashSet集合底层原理0523
package cn.mmc.day14; import java.util.*; /* |--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。、 |--HashSet:底层数据结构是哈希表。是线程不安全的。不同步。 原理:HashSet是如何保证元素唯一性的呢? 是通过元素的两个方法,hashCode和equals来完成。 当add元素时,先要比较元素的HashCode值 如果元素的HashCode值相同,才会判断equals是否为true。 如果元素的hashcode值不同,不会调用equals。 注意,对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashcode和equals方法。 当我们使用自定义class对象时,要覆写hashCode和equal方法,以保证对象的唯一性 |--TreeSet: Set集合的功能和Collection是一致的。 */ public class SetTest { public static void sop(Object obj) { System.out.println(obj); } /** * @param args */ public static void main(String[] args) { HashSet hs = new HashSet(); sop(hs.add("java01"));//true sop(hs.add("java01"));//false//元素不可以重复。原理:注意,对于判断元素是否存在, //以及删除等操作,依赖的方法是元素的hashcode和equals方法。 } }