Мелкая копия коллекции на Java - PullRequest
0 голосов
/ 23 октября 2009

Для этого метода я должен сделать поверхностную копию стека связанных списков. Итак, сначала я бы инициализировал связанный стек, а затем использовал бы цикл 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 ]

3 голосов
/ 11 марта 2010

Если рассматриваемый стек равен это LinkedStack, то, как и большинство коллекций, он имеет конструктор копирования и тот, который принимает массив. Из вашего кода я не вижу, где находится исходный стек / массив, который вы хотите клонировать, но это легко сделать с помощью:

 LinkedStack<E> newStack = new LinkedStack<E>(originalStack);
0 голосов
/ 23 октября 2009

Полагаю, вы используете LinkedList для своего стека.

Согласно Javadoc , метод .clone (), но помните, что элементы в вашем стеке не будут клонированы.

...