질문을 입력하기 전에 기본 유형 이외의 모든 것을 알고 있으며 모든 것이 참조 번호로 저장됩니다. 내 Java 코드 구조는 다음과 같습니다. ..... 처음에는 드라이버, 예약 및 자동차 클래스가 있습니다. 그들 사이의 관계는 운전자가 예약을 수행 한 운전자이고, 자동차가 예약 클래스에 저장된 운전 예정자입니다.ArrayList (완전 딥 복사)
운전자가 예약을 처리합니다. 자동차에는 몇 가지 기본 유형 정보가 있습니다. 여러 대의 차량을 예약에 저장할 수 있습니다 (기본 및 ArrayList
). 그러나 (드라이버 클래스의) 하나의 드라이버 (ArrayList
)는 여러 예약을 가질 수 있습니다. 따라서 사용자가 그의 예약에있는 드라이버를 볼 수있게하면 ArrayList
의 모든 내용을 기본 형식을 제외한 모든 것이 참조 번호이므로 모든 내용을 자세히 복사하려고합니다.
어쨌든, 나는 드라이버 클래스에서 예약을위한 배열 목록의 사본을 만들 것입니다.
내 드라이버 클래스에서 이것은 접근 자이며 ArrayList
을 전달할 때 먼저 딥 복사를 시도하고 ArrayList
을 전달하려고했습니다.
public ArrayList<Reference> getReference() {
copiedRef = new ArrayList<Reference>();
//references have been declared above
for (int i = 0; i < references.size(); i++) {
copiedRef.add(references.get(i));
//getting each element in the arrayList one by one and push to a new ArrayList
}
return copiedRef;
}
딥 복사본입니까? 그리고 clone()
을 사용해야하는 경우.
어떻게 향상시킬 수 있습니까? (clone
은 얕은 복사를 수행하는데, 나는 clone
이 깊은 복사에 도움이 될 수 있다고 생각지 않거나 다른 게시물을 오해 할 수 있음).
이것은 얕은 사본입니다. Reference 클래스에는 무엇이 포함되어 있습니까? –