【问题标题】:The values must be of a collection type from the Collections Framework这些值必须是集合框架中的集合类型
【发布时间】:2018-10-26 04:43:13
【问题描述】:
谁能告诉我这是什么意思。
示例场景。
带有作为键并代表人民姓名的字符串的地图。
这些值是字符串集合,每个字符串代表他们拥有的汽车。
值必须是集合类型是什么意思。我不明白,在集合中它们不是集合类型吗?例如,在 Set 集合中时 Strings 不是集合类型。谁能解释一下这句话。
【问题讨论】:
标签:
java
collections
frameworks
【解决方案1】:
Java Collections 是基于数据结构(如列表、集合、映射等)的通用类框架。 Collections 定义了大量的方法,可以对许多实际的数据结构进行操作。 Java 中完善的强制转换和覆盖机制可确保在调用通用集合方法之前将适当的数据结构转换为。
还有一些特殊的集合类型,比如不可变映射和不可变列表。
总而言之,Collections 框架允许 Java 开发人员将大量众所周知的运算符(方法)应用于许多结构化数据类型。您可以阅读有关 OCP 的书,其中有一章完全介绍了集合框架。
【解决方案2】:
值必须是集合类型是什么意思
也许你指的是Map接口的values()方法。
无论Map 中的单个值的类型可能是什么(Integer、String、Set<String> 等...),当您调用 values() 方法时,它会返回所有Map 中存储的值,您将获得这些值的 Collection。
例如,在您的情况下:
Map<String,Set<String>> map;
打电话给values() 会给你一个:
Collection<Set<String>> values = map.values();
这里返回一般Collection的原因是:
- 值不必是唯一的(可能有重复),因此我们不能返回
Set 的值。
- 值不必排序(
Map 的条目不必排序),因此返回值的 List 没有意义。