Set和Map是Java的两个重要接口。 两者都可以在集合框架中找到。 此外,Set 和 Map 接口可用于以单个单元的形式存储对象集合。
但是,两者并不相同并且有一些差异,两者的用法也不同。
关键精华
- Map和Set都是集合数据结构,只是Map存储的是键值对,而Set存储的是唯一元素。
- 映射对于组织具有关联关系的数据很有用,允许根据键高效地检索值,而集合适合存储不同的元素而没有重复。
- 在 JavaScript、Python 和 C++ 等编程语言中,映射和集合具有用于高效数据操作、插入和删除的特定方法和属性。
地图对比 在
映射是键值对的集合,其中每个键都与一个值关联。映射中的键是唯一的,它们用于识别和检索其对应的值。集合是唯一值的集合,其中每个值只能在集合中出现一次。集合用于跟踪不同元素的列表或执行数学运算。
Map 是一个接口,是 Collection 接口的一部分。 顾名思义,它 地图 唯一键与值之间的联系。 在一个键中,相同的值可以重复,但相同的键不能在Map中占有一席之地。
Set 也是 Collection 的一个接口。 此处不能出现重复值。 即使是 null 值也不能超过 XNUMX。 可以在其中生成数学集合。 集合是可以被遍历的。
对比表
比较参数 | 地图位置 | 在 |
---|---|---|
定义 | 它是一个接口,负责将唯一键映射到值。 | 它是 Collection 接口下的接口,不能携带重复元素。 |
与 Collection 接口的关系 | 它是一个单独的独立界面。 | Set 负责扩展集合接口。 |
宗旨 | Map的作用是连接key和value。 | Set 的作用是存储唯一值。 |
空值 | Map 可以有尽可能多的空值。 | 最多 Set 可以有一个空值。 |
用法 | 要以键或值的形式存储数据,应该使用 Map。 | 要创建独特组件的集合,应使用 Set。 |
什么是地图?
In 爪哇岛,可以找到一个Collection接口,在这里面,一个重要的接口就是Map。 如果一个人想使用 Map,那么他/她需要扩展 Collection 接口。
Map 可以将对象存储为一个单元。 对象存储在键值对中。
之所以称为 Map,是因为它映射了 key 和 value 之间的联系。 Map 收集的键是唯一的。 一个键可以有相同的值,但两个键必须不同。
它们不能相同。 由于键中的所有值都不同,因此只需使用键即可轻松访问这些值。
使用 Map 可以更新甚至删除任何元素。 Map又分为三个类,TreeMap, 链接哈希映射, 和哈希表。
Map 不兼容遍历,但如果需要这样做,则应先将 Map 转换为 Set。
什么是 在 ?
Set是Java.util包自带的接口。 收藏接口的扩展可以成功植入这个接口。
如果一个人的目的是设计数学 Set,那么在 Java 中,Set 应该由您选择。 该界面不能放置相同的元素,因此即使是空值也不能多次输入。
Set 无法维护插入顺序。 这是因为它以有序的方式包含所有当前元素。
迭代是产生一系列结果的过程,如果我们使用 Set 的元素就可以轻松完成。 keyset() 和 entry set() 之类的键应该在其中使用来完成工作。
尽管此接口中不遵循插入顺序,但它的某些类(例如 LinkedHashSet)按插入顺序设计列表。 设置订单列表和排序数据。 要插入一个元素,应该使用“treeset”方法。
Map 和 Set 的主要区别
- Map 是一个接口,负责将键唯一映射到值,而 Set 是 Collection 组件下的接口,它不能携带重复元素。
- Map是一个单独的独立接口,而Set是集合接口的一部分,负责对其的扩展。
- Map中的空值可以有多少个,而Set中最多可以有一个空值。
- Map的作用是连接key和value,而Set的作用是存储唯一值。
- 如果您打算以键或值的形式存储数据,那么 Map 是您的选择。 另一方面,应该选择 Set 来创建独特组件的集合。
最后更新时间:15 年 2023 月 XNUMX 日
Sandeep Bhandari 拥有塔帕尔大学计算机工程学士学位(2006 年)。 他在技术领域拥有 20 年的经验。 他对各种技术领域都有浓厚的兴趣,包括数据库系统、计算机网络和编程。 你可以在他的网站上阅读更多关于他的信息 生物页面.
使用的 Java 语法和示例对于巩固本文讨论的理论概念非常有帮助。
本文添加了一个有趣的 Java 视角来比较 Map 和 Set 接口,并扩展了每个接口的限制和用例。
同意。它通过 Java 包含展示了这些接口的实际含义,这对开发人员来说是有益的。
我发现对底层 Java 实现的介绍也是本文的一个重点。
本文对 Java 中的 Map 和 Set 接口之间的差异进行了清晰简洁的描述。关键要点是对内容的有价值的总结。
很好的解释!我一直在寻找一篇内容丰富的文章,以一种易于理解的方式分解这些概念,就是这样。
以简单明了的方式介绍材料使本文成为初学者的宝贵资源,并且对于那些在 Java 编程方面更有经验的人来说也是一次很好的回顾。
本文未能解决使用地图和集合时实际出现的复杂性。此外,表格比较本来可以更详细。
我不同意,这篇文章在理论解释和实际相关性之间取得了很好的平衡。表格比较提供了足够的信息来进行介绍性理解。