在Java中,在段树中的节点上存储向量或队列

在Java中,在段树中的节点上存储向量或队列,java,algorithm,segment-tree,Java,Algorithm,Segment Tree,我正在使用段树数据结构编写一个延迟传播代码。为了进行延迟传播,我想在段树中的一个节点上存储一个整数列表,在进行延迟传播的同时,我想将该节点的整数列表附加到左边和右边的子节点上。为了保持段树中更新方法的复杂性,我希望在O(1)时间内对节点进行延迟更新。因此,为了存储整数列表,我可以在Java中使用Vectors或LinkedList。java中的向量有一个名为addAll的方法,LinkedList也有相同的方法。有谁能告诉我,两个列表中哪一个更适合将一个列表中的所有元素添加到另一个列表中。谢谢不

我正在使用段树数据结构编写一个延迟传播代码。为了进行延迟传播,我想在段树中的一个节点上存储一个整数列表,在进行延迟传播的同时,我想将该节点的整数列表附加到左边和右边的子节点上。为了保持段树中更新方法的复杂性,我希望在O(1)时间内对节点进行延迟更新。因此,为了存储整数列表,我可以在Java中使用Vectors或LinkedList。java中的向量有一个名为addAll的方法,LinkedList也有相同的方法。有谁能告诉我,两个列表中哪一个更适合将一个列表中的所有元素添加到另一个列表中。谢谢

不要使用向量,它已经过时了。如果需要线程安全,请使用
CopyOnWriteArrayList
,否则可以使用普通的
ArrayList
。我之所以编写Vector,是因为ArrayList和Vector的功能在Java中是相同的。ArrayList中的addAll方法将一个ArrayList中的所有元素以恒定时间添加到另一个ArrayList中吗?ArrayList和LinkedList中的addAll()具有线性时间复杂性。