不同点:
HashMap基本上等同于HashTable,除了:
1,HashMap不是线程安全的。
2,HashMap允许key和value为空值,而HashTable的key和value都不允许为空。
HashSet不是key-value结构。
相同点:
1,HashMap, HashTable和HashSet都不允许重复值。原因很简单:如果输入值是重复的,那么计算出来的hash值肯定也是重复的,此时就会产生碰撞,降低hash表的效率。
如果插入值和前面的重复,则会覆盖前面的重复值。
2,HashMap, HashTable和HashSet都不保证顺序。因为hash表中存储的数据并没有顺序可言,存储位置是完全根据hash函数定的。