除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?

我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。


当前回答

hashmap允许一个空键和空值。它们不是同步的,这提高了效率。如果需要,您可以使用Collections.SynchronizedMap()使它们同步。

哈希表不允许空键,并且是同步的。

其他回答

HashSet允许我们在集合中存储对象,而HashMap允许我们在键和值的基础上存储对象。每个对象或存储对象都有键。

顾名思义,HashMap是一个关联Map(从键映射到值),HashSet只是一个Set。

HashSet和HashMap都是存储对,区别在于在HashMap中你可以指定一个键,而在HashSet中键来自对象的哈希代码

HashMap是用来添加、获取、删除…由任何类型的自定义键索引的对象。 HashSet用于添加元素,删除元素,并通过比较它们的哈希值来检查元素是否存在。

HashMap包含元素,HashSet记住它们的哈希值。

Java中HashSet和HashMap的区别

HashSet内部使用HashMap存储对象。当add(String)方法调用时,它调用HahsMap put(key,value)方法,其中key=字符串对象& value=新对象(Dummy)。所以它不维护重复,因为键只是值对象。

在Hashset/HashMap中作为key存储的对象应该覆盖hashcode & equals契约。

用于访问/存储HashMap中的值对象的键应该声明为Final,因为当它被修改时,value对象不能被定位并返回null。