【问题标题】:Comparing sizes of sets that are keys and values of a map比较作为映射的键和值的集合的大小
【发布时间】:2020-07-21 14:25:09
【问题描述】:

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

一个。 s1.size() > s2.size()

b. s1.size()

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

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

e。 s1.size()

我原以为它会是“b”,因为一个键可以有很多值,但事实证明答案是 c,其中键可能比值多。但是,我在理解所提供的答案 (c) 时遇到问题——谁能帮我理解为什么 b 是错误的而 c 是正确的?

【问题讨论】:

    标签: java dictionary hash set key


    【解决方案1】:

    反过来说:一个键最多有一个V 类型的值。 (V 可以是像集合或列表这样的容器,但它是映射中的单个值。)多个键可以具有相同的值(这实际上是 HashSet 本身的实现方式,在HashMap)。

    【讨论】:

      【解决方案2】:

      一个键只能有 1 个值。该值可以是一个对象,可以包含多个事物。但是每个键只有 1 个值。

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

      Map<String, String> map = new HashMap<>();
      map.put("key1", "elephant");
      map.put("key2", "elephant");
      map.put("key3", "elephant");
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-29
        • 2018-08-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多