1

Multimap<String, List<String>>在我的一个 API 中使用。现在要获取所有值意味着列表列表,我使用了多图的.values()方法。但是这种方法正在返回我Collection<List<String>>。现在要在这个集合的索引上播放,我想将它转换为List<List<String>>or ArrayList<List<String>>

如何在不构建新的 arrayList 的情况下进行转换或转换并将集合中的列表值显式添加到该 arraylist。

4

3 回答 3

7

您可以使用适当的构造函数:

List<List<String>> yourList = new ArrayList<>(yourCollection);

列表中元素的顺序是集合的迭代器的顺序。

于 2013-08-07T15:29:15.060 回答
1

如果您不想构建一个新集合(别忘了,这可能并不昂贵,因为您将创建新集合但不会克隆实际成员),为什么不干脆做

int i = 0;
for (List<String> list : collection) {
   // whatever
   i++;
}

不是很好,我很感激。

于 2013-08-07T15:29:27.867 回答
1

或者使用谷歌收藏API

List<List<String>> = Lists.newArrayList(myMap.values());
于 2013-10-17T15:34:00.090 回答