Java 制作ArrayList<;LinkedList<;字符串>&燃气轮机;变成一个难以忍受的人
我有一个Java 制作ArrayList<;LinkedList<;字符串>&燃气轮机;变成一个难以忍受的人,java,iterator,Java,Iterator,我有一个ArrayList,我想为所有LinkedList创建一个Iterator 最好的方法是什么 我发现: 'final Iterable<Integer> all = Iterables.unmodifiableIterable( Iterables.concat(first, second, third));' “最终可编辑全部”= 不可修改的( Iterables.concat(第一,第二,第三));' 但是我有很多LinkedLists。我能做些什么来合并
ArrayList
,我想为所有LinkedList
创建一个Iterator
最好的方法是什么
我发现:
'final Iterable<Integer> all =
Iterables.unmodifiableIterable(
Iterables.concat(first, second, third));'
“最终可编辑全部”=
不可修改的(
Iterables.concat(第一,第二,第三));'
但是我有很多LinkedList
s。我能做些什么来合并所有这些
谢谢 不清楚您是否只想使用标准Java类来实现这一点,但如果是这样,您可以从Java 8开始这样做:
ArrayList<LinkedList<String>> strings = /* ... */;
Iterator<String> i = strings.stream().flatMap(l -> l.stream()).iterator();
ArrayList字符串=/*…*/;
迭代器i=strings.stream().flatMap(l->l.stream()).Iterator();
一个简单的解决方案
ArrayList<LinkedList<String>> l1 = ...
List<String> l2 = new ArrayList<>();
for(List<String> e : l1) {
l2.addAll(e);
}
ArrayList l1=。。。
列表l2=新的ArrayList();
对于(列表e:l1){
l2.addAll(e);
}
使用番石榴的ListMultimap
我需要更多的Java方式。我不能使用这个库。嗯,番石榴是一个Java库……你的Iterables不是已经是番石榴的Iterables了吗?为什么在你的问题标题中,你写了
,但在你的代码中,你用了“?@Kent是对的,Iterables
是番石榴。所以,用番石榴吧!