示例场景:
带有字符串的映射,这些字符串是键并代表人们的名字。 这些值是字符串集,每个字符串代表他们拥有的一辆汽车。
值必须是集合类型是什么意思?我不明白,它们在集合中时不是集合类型吗?例如,在 Set 集合中,Strings 不是集合类型。谁能解释一下这句话吗?
值必须是集合类型是什么意思
也许你指的是
values()
接口的Map
方法。
无论
Map
中单个值的类型是什么(Integer
、String
、Set<String>
等),当您调用 values()
方法时,它会返回所有值存储在 Map
中,您将获得这些值的 Collection
。
例如,对于您的情况:
Map<String,Set<String>> map;
致电
values()
会给您:
Collection<Set<String>> values = map.values();
这里返回一般
Collection
的原因是:
Set
值。Map
的条目不必排序),因此返回值的List
没有意义。Java Collections 是一个基于数据结构(例如列表、集合、映射等)的通用类框架。集合定义了大量的方法,可以对许多实际的数据结构进行操作。 Java 中完善的转换和重写机制可确保在调用通用集合方法之前将其转换为适当的数据结构。
还有特殊的集合类型,例如不可变映射和不可变列表。
总而言之,集合框架允许 Java 开发人员将大量众所周知的运算符(方法)应用于许多结构化数据类型。您可以阅读有关 OCP 的书,其中有一章完全介绍集合框架。