除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?
我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。
除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?
我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。
当前回答
HashMap是Map接口的实现 HashSet是Set Interface的一个实现
以键值对的形式存储数据 HashSet只存储对象
Put方法用于在map中添加元素 Add方法用于将元素添加为Set
在哈希映射中,哈希码值使用键对象计算 这里成员对象用于计算hashcode值,这可以是相同的两个对象,因此equal()方法用于检查是否相等,如果返回false,这意味着两个对象是不同的。
HashMap比hashset快,因为使用唯一键访问对象 HashSet比Hashmap慢
其他回答
HashSet是一个集合,例如{1,2,3,4,5}
HashMap是key ->值(键到值)映射,例如{a -> 1, b -> 2, c -> 2, d -> 1}
注意,在我上面的例子中,HashMap中不能有重复的键,但它可能有重复的值。
在HashSet中,必须没有重复的元素。
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是根据HashMap实现的。它是键和PRESENT对象之间的映射。
差异: 关于等级制度: HashSet实现Set。 HashMap实现Map并存储键和值的映射。
在数据库中使用HashSet和HashMap将帮助您理解它们的重要性。 HashSet:通常用于存储唯一的集合对象。 例如:它可以用作存储之间的多对一关系的实现类 class Item和class Bid where (Item有多个投标) HashMap:用于将键映射到值。该值可以为null或Object的任意Object /list (Object本身就是Object)。
编辑-这个答案不正确。我把它放在这里,以防其他人有类似的想法。B.roth和justkt的答案正确。
——原创——
您基本上回答了自己的问题——hashset不允许重复值。使用支持哈希映射构建哈希集是很简单的(只是检查一下该值是否已经存在)。我想各种Java实现要么做到这一点,要么实现一些自定义代码来更有效地做到这一点。