Как создать глубокую копию связанного списка, если объекты, хранящиеся в списке, не являются клонируемыми?

У меня есть связанный список, который содержит объекты, которые не являются клонируемыми. Что было бы наиболее эффективным способом глубокого копирования списка?

Что я пробовал это:

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: рекомендуемое решение для глубокого клонирования / копирования экземпляра

Другие вопросы по тегам