Как создать глубокую копию связанного списка, если объекты, хранящиеся в списке, не являются клонируемыми?
У меня есть связанный список, который содержит объекты, которые не являются клонируемыми. Что было бы наиболее эффективным способом глубокого копирования списка?
Что я пробовал это:
List<Ob> deepCopyListA = new LinkedList<Ob>(aList);
и, кажется, работает нормально, но мне просто интересно, если это на самом деле глубокое копирование всего списка и есть ли лучший способ сделать это
* Я не уверен, какие коды размещать, но в основном у меня есть класс, и несколько экземпляров класса в виде списка в другом классе
private List<Ob> aList;
public List<Ob> getaList() {
List<Ob> deepCopyListA = new LinkedList<Ob>(aList);
return deepCopyListA;
}
1 ответ
Вы могли бы пойти с прямым, но хрупким подходом ручного копирования каждого свойства из старых объектов в новые объекты. Или вы можете клонировать объекты с помощью отражения (есть библиотеки, которые сделают это за вас).
Вы можете прочитать больше о некоторых подходах и компромиссах в этом посте: Java: рекомендуемое решение для глубокого клонирования / копирования экземпляра