Java中的集合的浅拷贝

时间:2009-10-22 23:15:42

标签: java list collections stack

对于这种方法,我必须制作链表列表的浅表副本。 所以,首先我会初始化链接堆栈然后我会使用for循环来遍历值来复制堆栈。但是,为了使它们按正确的顺序排列,我是否只有一个嵌套循环来反转这组值? 这是我到目前为止所得到的,我错过了什么?这会将堆栈中所有值的引用复制到另一个堆栈。

LinkedStack<E> newStack = new LinkedStack<E>(); 
  for(int i = 0; i < objectCount; i++){   //objectCount is figuring out the count
     newStack.add[i] = newStack[i];
  // do I have to put a for loop here?
 return newStack; 
}

2 个答案:

答案 0 :(得分:3)

如果有问题的堆栈是this LinkedStack,那么,与大多数集合一样,它有一个复制构造函数,一个带有数组。我无法从您的代码中看到您要克隆的原始堆栈/数组在哪里,但这可以通过以下方式轻松完成:

 LinkedStack<E> newStack = new LinkedStack<E>(originalStack);

答案 1 :(得分:0)

我想您使用LinkedList作为堆栈。

根据Javadoc,.clone()方法,但要注意堆栈中的元素不会被克隆。