对于这种方法,我必须制作链表列表的浅表副本。 所以,首先我会初始化链接堆栈然后我会使用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;
}
答案 0 :(得分:3)
如果有问题的堆栈是this LinkedStack
,那么,与大多数集合一样,它有一个复制构造函数,一个带有数组。我无法从您的代码中看到您要克隆的原始堆栈/数组在哪里,但这可以通过以下方式轻松完成:
LinkedStack<E> newStack = new LinkedStack<E>(originalStack);
答案 1 :(得分:0)
我想您使用LinkedList作为堆栈。
根据Javadoc,.clone()方法,但要注意堆栈中的元素不会被克隆。