首页 > 编程知识 正文

hashmap hashset java_java - HashSet和HashMap之间的区别?

时间:2023-05-06 05:05:27 阅读:52775 作者:1135

java - HashSet和HashMap有什么区别?

除了HashSet,HashMap和HashSet有什么区别?

意味着明智的实施吗? 因为使用了酷的网络表存储值,所以有点模糊。

21个解决方案

279电压

HashSet是类似于{1、2、3、4、5}的组

HashMap是关键- &; gt; 值(键值)映射,示例) {a - &; gt; 1,b - &; gt; 2,c - &; gt; 2,d - &; gt; 1}

请注意,在上面的示例中,HashMap没有重复的键,但可能有重复的值。

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

b.Roth answered 2019-05-20t 00336051336032 z

128伏特

那些是完全不同的结构。 收集是Set的实现。 将键映射到值。 使用酷派网络进行重要搜索。

另一方面,Collection是Set的实现。 Set是为匹配集合而设计的数学模型。 正如您指出的,HashSet确实使用HashMap支持其实现。 但是,它实现了完全不同的接口。

本教程是您在寻找最适合您的Collection时的起点。 如果你真的想知道发生了什么,还有书。

justktanswered 2019-05-20t 00336050336047 z

50伏特

HashSet的

HashSet类实现Set接口

例如,如果HashSet包含字符串元素的HashSet,则它存储用于绘制HashSet元素集{“Hello”、“Hi”、“Bye”和“run”}的对象(元素或值)

HashSet不能指示重复元素不能在HashSet中存储重复值。

HashSet可以使用单个空值。

HashSet未同步。 这意味着它不适合线程安全操作,除非明确同步。 [相似性]

添加内容下一个注释

Hashseto(1) o )1) o ) h/n ) h is the table

混洗地图中

HashMap类实现了Map接口

HashMap用于存储密钥/值对。 简而言之,密钥和&; amp; 的映射value(hashmap类几乎相当于Hashtable。 但是,允许异步空值。 )如果具有整数键,该如何表示HashMap元素和String类型的值? 例{1-“Hello”,2-&; gt; “嗨”,3-&; gt; “Bye”,4-&; gt; “中驾驶”

HashMap不允许重复密钥,但允许重复值。

HashMap可以使用单个空键和任意数量的空值。

HashMap未同步。 这意味着它不适合线程安全操作,除非明确同步。 [相似性]

get containsKey next Notes

HashmapO(1) o (1) o ) H/N ) h is the table

有关详细信息,请参阅本文。

avanishkumaranswered 2019-05-20t 0033605336020 z

32电压

很遗憾他们的名字都以Hash开头。 这是他们中最不重要的部分。 正如其他人指出的,重要的部分来自酷网-收藏和地图。 它们分别是具有Set -无序集合-和Map -密钥访问权限的集合。 它们正好在酷酷的网络中实现。 这就是名字的来源。 但是,它们的本质隐藏在那些名字的部分之后。

请不要被他们的名字所迷惑; 他们是完全不同的东西。

carlmanasteranswered 2019-05-20t 0033605336053 z

3电压

HashSet允许您将对象保存到集合中。 HashMap允许您根据键和值保存对象。 每个对象或保存的对象都有一个键。

spidfireanswered 2019-05-20t 00336054336018 z

2电压

xldyf、HashMap是相关Map (键到值的映射),HashSet只是一个集。

leonbloyanswered 2019-05-20t 00336054336045 z

2电压

1 ) HashMap和HashSet之间第一个最重要的区别是HashMap是Map接口的实现,HashSet是Set接口的实现。 也就是说,HashMap是基于键值的数据结构,HashSet通过不允许重复来确保唯一性。 现实中的HashSet是HashMap在Java中的包装。 查看HashSet.java中add(e )方法的代码,可以看到类似于以下内容的代码:

publicbooleanadd{

returnmap.put(e,PRESENT )==null;

}

其中将对象放入map作为键和值是最终对象PRESENT,它是虚拟的。

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

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

这完全取决于Java中HashSet和HashMap的区别。 总之,HashSet和HashMap是两种不同类型的Collection,一种是Set,另一种是Map。

Piqué answered 2019-05-20T00:55:38Z

1 votes

HashSet是添加,获取,删除......由任何类型的自定义键索引的对象。

HashSet是通过比较它们的酷炫的网络值来添加元素,删除元素并检查元素是否存在。

因此,HashMap包含元素,HashSet会记住它们的酷炫的网络值。

Martijn Courteaux answered 2019-05-20T00:56:17Z

1 votes

区别:关于等级:HashSet实现了Set。HashMap实现Map并存储键和值的映射。

在数据库中使用HashSet和HashMap可以帮助您理解每个数据库的重要性。

HashSet:通常用于存储唯一的集合对象。例如:它可以用作实现类,用于存储多对一关系

class Item和Class Bid where(Item有很多Bids)HashMap:用于将键映射到value。值可以为null或Object的任何Object / list(它本身就是对象)。

frictionlesspulley answered 2019-05-20T00:57:03Z

1 votes

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;

}

其中将对象放入map作为键和值是最终对象PRESENT,它是虚拟的。

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

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

这完全取决于Java中HashSet和HashMap的区别。 总之,HashSet和HashMap是两种不同类型的Collection,一种是Set,另一种是Map。

Vibha Sanskrityayan answered 2019-05-20T00:57:44Z

1 votes

Java中HashSet和HashMap之间的差异

HashSet在内部使用HashMap来存储对象。当add(String)方法调用它时,调用HahsMap put(key,value)方法,其中key = String object& value = new Object(Dummy)。因此它不会重复,因为键只是值对象。

在Hashset / HashMap中作为键存储的对象应该覆盖hashcode& 等于合同。

用于在HashMap中访问/存储值对象的键应声明为Final,因为当它被修改时,无法定位Value对象& 返回null。

user3539704 answered 2019-05-20T00:58:25Z

1 votes

HashSet内部实现HashMap.如果看到内部实现,则插入HashSet中的值将作为键存储在HashMap中,并且值是Object类的Dummy对象。

HashMap与HashSet之间的区别是: -

HashSet包含键值对,每个值都可以通过键访问,因为HashSet每次都需要迭代,因为没有get方法。

HashSet实现Map接口,允许一个空值作为键,多个空值作为值。如HashMap实现Set接口,只允许一个空值而不重复值。(在HashMap键中允许记住一个空键,因此一个空值 在HashSet中作为HashSet在内部实现HashMap)。

HashSet和HashMap在迭代时不保持插入顺序。

Abhay S answered 2019-05-20T00:59:20Z

0 votes

HashSet是根据HashMap实现的。 它是键和PRESENT对象之间的映射。

Matthew Flaschen answered 2019-05-20T00:59:46Z

0 votes

HashSet在内部使用HashMap来存储其条目。 内部HashMap中的每个条目都由一个Object键入,因此所有条目都散列到同一个桶中。 我不记得内部HashMap用来存储其值的内容,但它并不重要,因为内部容器永远不会包含重复值。

编辑:为了解决马修的评论,他是对的; 我倒退了。 内部HashMap使用构成Set元素的Objects来键入。 HashMap的值是一个只是简单地存储在HashMap桶中的Object。

Andy Gherna answered 2019-05-20T01:00:20Z

0 votes

HashSet的

HashSet是Set Interface的实现,它不允许重复值默认情况下Collection Framework中的所有方法也都在Set Interface中,但是当我们讨论Hash set时,主要的东西是将要存储在HashSet中的对象必须覆盖 equals()和hashCode()方法,以便我们可以检查相等性,并且没有重复值存储在我们的set中。如果我们创建了自己的对象,我们需要以这样的方式实现hashCode()和equal() 能够在存储集合时正确地比较对象,以便不存储重复的对象,如果我们没有覆盖此方法,则对象将采用此方法的默认实现。

方法:public boolean add(Object o)方法用于在集合中添加元素,如果在HashSet的情况下它是重复值,则返回false,否则如果成功添加则返回true。

HashMap中

HashMap是Map接口的一个实现,它将一个键映射到value.Duplicate键不允许在map.Basically map接口有两个实现类HashMap和TreeMap主要的区别是TreeMap维护对象的顺序但是HashMap不会.HashMap 允许空值和空键.HashMap不是同步的,但是集合框架提供了方法,这样我们就可以在多个线程访问我们的hashmap并且一个线程在结构上改变我们的map时使它们同步。

方法public Object put(Object Key,Object value)方法用于在map中添加元素。

Ramkailash answered 2019-05-20T01:01:11Z

0 votes

HashSet是Set实现,允许重复值但不重复键。对于添加对象,需要键/值对。 允许空值和空值。 例如:

{The-→3,世界 - →5,是 - →2,nice-→4}

HashSet是一个Set实现,它不允许重复。如果你试图添加一个重复的对象,调用public boolean add(Object o)方法,那么该集保持不变并返回false。例如:

[在,世界,是,好]

Meenakshi Pant answered 2019-05-20T01:01:59Z

-1 votes

你几乎回答了自己的问题 - hashset不允许重复值。 使用支持hashmap构建一个hashset(并且只是检查该值是否已经存在)将是微不足道的。 我想各种java实现要么这样做,要么实现一些自定义代码来更有效地执行它。

oedo answered 2019-05-20T01:02:26Z

-1 votes

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

Munish Goyal answered 2019-05-20T01:02:55Z

-1 votes

HashSet和HashMap都是存储对,区别在于在HashMap中你可以在HashSet中指定一个键,键来自对象的酷炫的网络码

prateeksarda answered 2019-05-20T01:03:23Z

-1 votes

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

Hashtables不允许空键并进行同步。

Appesh answered 2019-05-20T01:03:58Z

-2 votes

HashMap是Map接口的一个实现HashSet是Set Interface的一个实现

HashMap以键值对的形式存储数据HashSet仅存储对象

Put方法用于在map中添加元素Add方法用于添加元素是Set

在酷炫的网络映射中,使用密钥对象计算酷炫的网络码值这里的成员对象用于计算酷炫的网络码值,对于两个对象,酷炫的网络码值可以相同,因此如果返回false则表示两个对象不同,则使用equal()方法检查相等性。

HashMap比hashset更快,因为唯一键用于访问对象HashSet比Hashmap慢

Hengameh answered 2019-05-20T01:04:52Z

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。