Java 组合列表

标签 java collections guava apache-commons-collection

我正在寻找一个实现复合列表的开源库。 我需要一个列表,它从其他一些列表中读取它的值,并且可以像这样构造:

List list1 = new ArrayList();
list1.add("0");
List list2 = new LinkedList();
list2.add("1");
list3.add("2");
List list3 = new CompositeList(list1, list2...)
然后:
assertEquals("0", list3.get(0));
assertEquals("1", list3.get(1));
assertEquals("2", list3.get(2));
我的想法是我不需要复制源列表中的所有内容。

快速谷歌没有找到任何东西,我没有在 Guava 或公共(public) Collection 中看到它(我可能忽略了它)。 我现在真的没有时间正确实现它。

最佳答案

今天早上我在 Guava 里面寻找类似的东西,最后偶然发现了 Iterables.concat() .

您专门要求使用 ListView ,因此这可能无法完全解决您的问题,但这是一个需要牢记的选项。

一开始我还以为我需要一个 Collection/List,但后来我意识到这并不是解决我的问题所必需的:我主要是在寻找一些东西来连接多个 iterables(通过各种 Guava 过滤/转换获得),之前过滤/转换结果,最终 dump it into an ImmutableList .如果您只需要迭代结果,返回 Iterable View 也是一种选择。

PS(几年后):这些转换/连接现在也可以使用 Guava 的 FluentIterable 或 Java 8 流来完成。

关于Java 组合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4216340/

相关文章:

jpa - JPA 是否为数据库中为空的集合属性返回 "null"或空集合?

java - 从 List<String> 创建 HashMap

java:获取Guava Multimap给定键范围内的值的计数

Java:如何使用 3rd 方库?

java - Selenium WebDriver "Click"和 JavascriptExecutor Click 有什么区别

java - 我在使用 EJB 时收到错误 `java.lang.ClassNotFoundException`

java - com.intellij.javaee.oss.admin.jmx.JmxAdminException : com. intellij.execution.ExecutionException 异常

java - 我应该将其设为已检查或未检查的异常吗?

java - java - 如何在不重新排序的情况下从列表中删除重复项?

java - 如何在 Java 中深度复制哈希器