首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较作为映射的键和值的集合的大小

比较作为映射的键和值的集合的大小
EN

Stack Overflow用户
提问于 2020-04-09 02:46:18
回答 2查看 166关注 0票数 0

考虑一个映射 m,其中 m 的类型是 HashMap 或 TreeMap, 假设 s1 和 s2 都是 HashSet 或 TreeSet的集合,其中 s1 s2是M中的键集,而 s1 s2则是对应值的集合。

a. s1. s2.size() >s2 s2.size()

b. s1.size() <= s2.size()

c. s1.size() >= s2.size()这是正确的答案。

d. s1.size() == s2.size()

e. s1.size() < s2.size()

我原以为它是"b“,因为一个键可以有很多值,但答案是c,那里的键可能比值多。但是,如果(C)-could有人帮助我理解为什么b是错的,c是对的,我就很难理解答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-09 03:06:47

键只能有一个值。这个值可以是一个对象,它可以包含多个东西。但你每个键只有一个值。

在Map中,您的键保证是唯一的,但是值不一定是唯一的。在下面的示例中,有3个唯一的键,但只有一个唯一的值:

代码语言:javascript
运行
复制
Map<String, String> map = new HashMap<>();
map.put("key1", "elephant");
map.put("key2", "elephant");
map.put("key3", "elephant");

因此,如果您从值列表中创建一个集合,则该集合中的唯一对象将是“大象”。但是,如果您从键中创建一个集合,那么您将得到3个对象"key1“、"key2”和"key3“。因此,键的计数大于值的计数。

票数 1
EN

Stack Overflow用户

发布于 2020-04-09 03:05:01

向后显示:键最多有一个类型为V的值。( V可以是一个容器,如set或list,但它是映射中的单个值。)多个键可以具有相同的值(实际上,这就是在HashSet之上实现HashMap本身的方式)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61113157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档