除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?
我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。
除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?
我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。
当前回答
HashSet和HashMap都是存储对,区别在于在HashMap中你可以指定一个键,而在HashSet中键来自对象的哈希代码
其他回答
HashSet在内部使用HashMap来存储它的条目。内部HashMap中的每个条目都由一个Object进行键控,因此所有条目都散列到同一个bucket中。我不记得内部HashMap使用什么来存储它的值,但这并不重要,因为内部容器永远不会包含重复的值。
编辑:针对马修的评论,他是对的;我想反了。内部HashMap由组成Set元素的对象作为键。HashMap的值是一个简单地存储在HashMap桶中的对象。
HashSet是根据HashMap实现的。它是键和PRESENT对象之间的映射。
hashmap允许一个空键和空值。它们不是同步的,这提高了效率。如果需要,您可以使用Collections.SynchronizedMap()使它们同步。
哈希表不允许空键,并且是同步的。
HashMap是一个Map实现,允许重复的值,但不允许重复的键。添加对象需要一个键/值对。允许使用空键和空值。例如:
{,世界- > 5 - > 3 - > 2,好- > 4}
HashSet是一个Set实现,它不允许重复。如果您试图添加一个重复的对象,调用公共布尔add(object o)方法,则该集合保持不变并返回false。例如:
(,世界,好)
顾名思义,HashMap是一个关联Map(从键映射到值),HashSet只是一个Set。