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

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


当前回答

HashSet是一个集合,例如{1,2,3,4,5}

HashMap是key ->值(键到值)映射,例如{a -> 1, b -> 2, c -> 2, d -> 1}

注意,在我上面的例子中,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。

它们是完全不同的结构。HashMap是Map的实现。Map将键映射到值。键查找使用散列进行。

另一方面,HashSet是Set的实现。集合是用来匹配集合的数学模型的。正如您所注意到的,HashSet确实使用HashMap来支持其实现。但是,它实现了一个完全不同的接口。

当您正在寻找适合您的目的的最佳收藏时,本教程是一个很好的起点。如果你真的想知道发生了什么,也有一本书可以帮你。

基本上在HashMap中,用户必须同时提供Key和Value,而在HashSet中只提供Value, Key是通过哈希函数从Value自动派生出来的。因此,在拥有Key和Value之后,HashSet可以在内部存储为HashMap。

Java中HashSet和HashMap的区别

1) HashMap和HashSet之间的第一个也是最重要的区别是HashMap是Map接口的实现,而HashSet是Set接口的实现,这意味着HashMap是一个基于键值的数据结构,HashSet通过不允许重复来保证唯一性。在现实中,HashSet是Java中HashMap的包装器,如果你看一下HashSet. Java的add(E E)方法的代码,你会看到以下代码:

public boolean add(E e) 
{
    return map.put(e, PRESENT)==null;
}

其中,它将Object放入map中作为键和值,是一个最终对象PRESENT,它是dummy。

2) HashMap和HashSet的第二个区别是,我们使用add()方法将元素放入Set,但我们使用put()方法在Java中将键和值插入HashMap。

3) HashSet只允许一个空键,而HashMap可以允许一个空键+多个空值。

以上就是Java中HashSet和HashMap的区别。总之,HashSet和HashMap是两种不同类型的集合,一个是Set,另一个是Map。

HashSet是一个集合,例如{1,2,3,4,5}

HashMap是key ->值(键到值)映射,例如{a -> 1, b -> 2, c -> 2, d -> 1}

注意,在我上面的例子中,HashMap中不能有重复的键,但它可能有重复的值。

在HashSet中,必须没有重复的元素。