我目前正在尝试连接两个相同类型的独立LinkedList,我想知道,使用Java API LinkedList实现(即不创建自己的LinkedList实现)最有效的方法是什么
Tags:
共 (1) 个答案
# 1 楼答案
如果你想要一个连接两个列表的不可变列表视图,试试这个
public class ConcatenatedList<E> extends AbstractList<E> {
private final List<E> a, b;
public ConcatenatedList(List<E> a, List<E> b) {
this.a = a;
this.b = b;
}
@Override
public E get(int index) {
return index < a.size() ? a.get(index) : b.get(index - a.size());
}
@Override
public int size() {
return a.size() + b.size();
}
}
public static void main(String[] args) {
List<Integer> listA = new LinkedList<>(Arrays.asList(0, 1, 2));
List<Integer> listB = new LinkedList<>(Arrays.asList(3, 4, 5));
List<Integer> joined = new ConcatenatedList<>(listA, listB);
System.out.println(joined);
}
# 1 楼答案
如果你想要一个连接两个列表的不可变列表视图,试试这个
输出:
这个串联是O(1)