Зависит от того, что написать в конструкторе реализации DoublyLinkedList и методе «клон» суперкласса.Вы можете сделать это по-разному или одинаково.
Если вы используете инструмент «Список», вы должны написать собственный метод clone.У «LincedList» есть собственный метод.
И прочитайте, если хотите, эту статью: Java Cloning: копирование конструкторов и клонирование https://dzone.com/articles/java-cloning-copy-constructor-vs-cloning
import java.util.ArrayList;
import java.util.stream.IntStream;
public class Clonetest implements Cloneable{
ArrayList<Integer> ints = new ArrayList<>();
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
public static void main(String[] args) throws CloneNotSupportedException {
Clonetest clA = new Clonetest();
IntStream.range(0,10).forEach(value -> clA.ints.add(value)); //add Integers
System.out.println(clA.ints);
clA.ints.removeIf(integer -> integer % 2 > 0); //remove part in clA.ints
Clonetest clB = (Clonetest) clA.clone();
System.out.println(clB.ints);
System.out.println(clB.ints.equals(clA.ints));
}
}
Результаты:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[0, 2, 4, 6, 8]
true