除了HashSet不允许重复值之外,HashMap和HashSet之间还有什么区别呢?
我是说执行方面?这有点模糊,因为两者都使用哈希表来存储值。
除了HashSet不允许重复值之外,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
它不允许重复密钥。 即使它不是同步的,这样也会有更好的性能。 它允许一个空键。 当您想要维护一个唯一的列表时,可以使用HashSet。 HashSet实现了Set接口,它是由哈希表(实际上是HashMap实例)支持的。 HashSet存储对象。 HashSet不允许重复元素,但允许空值。 该接口不能保证顺序随时间保持不变。
HashMap
It allows duplicate keys. It is not synchronized, so this will have better performance. HashMap does not maintain insertion order. The order is defined by the Hash function. It is not Thread Safe It allows null for both key and value. It allows one null key and as many null values as you like. HashMap is a Hash table-based implementation of the Map interface. HashMap store object as key and value pair. HashMap does not allow duplicate keys but null keys and values are allowed. Ordering of the element is not guaranteed overtime.
差异: 关于等级制度: HashSet实现Set。 HashMap实现Map并存储键和值的映射。
在数据库中使用HashSet和HashMap将帮助您理解它们的重要性。 HashSet:通常用于存储唯一的集合对象。 例如:它可以用作存储之间的多对一关系的实现类 class Item和class Bid where (Item有多个投标) HashMap:用于将键映射到值。该值可以为null或Object的任意Object /list (Object本身就是Object)。
HashSet和HashMap都是存储对,区别在于在HashMap中你可以指定一个键,而在HashSet中键来自对象的哈希代码
HashSet是根据HashMap实现的。它是键和PRESENT对象之间的映射。
HashMap是Map接口的实现 HashSet是Set Interface的一个实现
以键值对的形式存储数据 HashSet只存储对象
Put方法用于在map中添加元素 Add方法用于将元素添加为Set
在哈希映射中,哈希码值使用键对象计算 这里成员对象用于计算hashcode值,这可以是相同的两个对象,因此equal()方法用于检查是否相等,如果返回false,这意味着两个对象是不同的。
HashMap比hashset快,因为使用唯一键访问对象 HashSet比Hashmap慢