将多个集合作为一个访问的Java方法,无需连接

标签 java algorithm collections interface iterator

<分区>

Possible Duplicate:
Combine multiple Collections into a single logical Collection?

我有很多小馆藏,我想作为一个整体访问。

我可以,例如创建一个新的 LinkedList 并将所有元素添加到其中。但我在想,可能有一些工具可以添加完整的 Collections 而不必重新链接每个项目。我不是在谈论 addAllCollections 应保持独立,但仅从外部看来是一个。

有什么想法吗?

最佳答案

Google Guava 项目有一个名为 Iterators 的类它提供了用于获取迭代器并对其应用转换的实用程序。他们提供的功能之一称为 Iterators.concat ,它接受多个迭代器并生成一个新的迭代器,该迭代器迭代这些单个迭代器的串联。这可能不是您要找的东西,但它会为您提供迭代多个元素的功能,而无需复制所有元素。

按照您的建议使用集合时,您可能需要考虑的一个问题是如果您尝试改变集合会发生什么。例如,如果你添加一个元素,它会去哪里?如果您只需要迭代而无需考虑这一点,则 Iterators.concat方法可能就是您要找的。

关于将多个集合作为一个访问的Java方法,无需连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7141133/

相关文章:

java - 关于java中使用循环数组的队列数据结构

Java - 源代码中的本地变量与字节代码之间的双射映射

algorithm - 在 k 次尝试中满足最大客人数(时间间隔)

java - java中如何声明ArrayList的ArrayList

java - 当我们将自定义类对象作为键和值传递时,如何根据键名称从 HashMap 获取值

java - 从树构建 JPA 规范

java - android 文件中存储字符串与字节数组的文件大小不同

php - 帮助计算(和有用性)密码熵

python - 为什么人脸聚类算法不使用距离矩阵而不是聚类算法?

java - Streams 中的 map() 如何工作以及当参数是 Collection 时如何使用它