值必须是集合框架中的集合类型

问题描述 投票:0回答:2

示例场景:

带有字符串的映射,这些字符串是键并代表人们的名字。 这些值是字符串集,每个字符串代表他们拥有的一辆汽车。

值必须是集合类型是什么意思?我不明白,它们在集合中时不是集合类型吗?例如,在 Set 集合中,Strings 不是集合类型。谁能解释一下这句话吗?

java collections frameworks
2个回答
0
投票

值必须是集合类型是什么意思

也许你指的是

values()
接口的
Map
方法。

无论

Map
中单个值的类型是什么(
Integer
String
Set<String>
等),当您调用
values()
方法时,它会返回所有值存储在
Map
中,您将获得这些值的
Collection

例如,对于您的情况:

Map<String,Set<String>> map;

致电

values()
会给您:

Collection<Set<String>> values = map.values();

这里返回一般

Collection
的原因是:

  1. 值不必是唯一的(可以有重复项),因此我们不能返回
    Set
    值。
  2. 值不必排序(
    Map
    的条目不必排序),因此返回值的
    List
    没有意义。

0
投票

Java Collections 是一个基于数据结构(例如列表、集合、映射等)的通用类框架。集合定义了大量的方法,可以对许多实际的数据结构进行操作。 Java 中完善的转换和重写机制可确保在调用通用集合方法之前将其转换为适当的数据结构。

还有特殊的集合类型,例如不可变映射和不可变列表。

总而言之,集合框架允许 Java 开发人员将大量众所周知的运算符(方法)应用于许多结构化数据类型。您可以阅读有关 OCP 的书,其中有一章完全介绍集合框架。

© www.soinside.com 2019 - 2024. All rights reserved.