HashSet:底层数据结构是哈希表;当建立某个将要存入HashSet对象中的话,将会在内存中生成对应的地址,这个地址会存入到HashSet对象中,这些存入的地址是按Hash值存储的,是无序的。这就是为什么说HashSet内的元素是无序的。如果存入的哈希值相同,还会比较对象是否相等,如果不相等则哈希值顺延。
HashTable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0出现。
HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的。jdk1.2出现,效率相对HashTable要高。 |