您可以使用Guava的 Iterables.concat方法来创建连接的Iterable视图.
Iterable<T> combined = Iterables.concat(list1, list2);
Run Code Online (Sandbox Code Playgroud)
Iterable不是列表)基本上它创建了一个Iterable通过它可以迭代迭代two列表(它迭代list1中的元素然后从list2迭代).
注意: - 如果你想要一个列表作为连接two lists,那么这可能对你没什么帮助..因为,它不会创建一个列表,而是一个Iterable ..对于这种情况,除了Iterating列表之外别无选择以及copy你的每个参考..
来自文档: -
它将两个迭代组合成一个可迭代的.返回的iterable有一个遍历a中元素的迭代器,后跟b中的元素.直到需要时才会轮询源迭代器.返回的iterable的迭代器在相应的输入迭代器支持时支持remove().
你也有这个方法的一个var-args版本 .. 看文件 ..这可以采取任意数量的列表,并返回可以按顺序迭代这些列表的Iterables ..所以,你可以这样做..
Iterable<T> combined = Iterables.concat(list1, list2, list3, list4, ...);
Run Code Online (Sandbox Code Playgroud)
此链接 - > google-guava-libraries-essentials也可能对您感兴趣..
事实并非如此,因为所有"附加"操作都不会对底层集合做出任何假设.从技术上讲,可以直接附加两个链表,但附加必须是通用的,因此它使用迭代.
不允许直接连接的另一个好理由是,在追加更改后,一个列表也会影响另一个列表,我确信这不是一个理想的属性.
| 归档时间: |
|
| 查看次数: |
2143 次 |
| 最近记录: |