值必须是Collections Framework中的集合类型

时间:2018-05-16 08:14:12

标签: java collections frameworks

有人能告诉我这意味着什么。

示例场景。

带有字符串的地图,它是键并代表人名。 值是字符串集,每个字符串代表他们拥有的汽车。

说值必须是集合类型是什么意思。我不明白,它们在集合中是不是集合类型。例如,在Set集合中是字符串不是集合类型。有人可以解释那句话。

2 个答案:

答案 0 :(得分:0)

  

说值必须是集合类型

是什么意思

也许您指的是values()界面的Map方法。

无论Map中的单个值的类型是什么(IntegerStringSet<String>等...),当您致电values()方法返回Map中存储的所有值,您会得到Collection这些值。

例如,在您的情况下:

Map<String,Set<String>> map;

致电values()会给你一个:

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

此处返回一般Collection的原因是:

  1. 值不必是唯一的(可能有重复项),因此我们无法返回Set个值。
  2. 不必对值进行排序(这不需要对Map的条目进行排序),因此返回List值是没有意义的。

答案 1 :(得分:0)

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

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

All-in-the Collections框架允许Java开发人员将大量众所周知的运算符(方法)应用于许多结构化数据类型。您可以阅读有关OCP的书籍,其中一章完全专注于馆藏框架。