Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java/자바] ArrayList의 깊은 복사(deep copy) 예제 본문
ArrayList는 Java에서 많이 사용되는 동적 배열입니다. 때로는 ArrayList를 복사할 때 원본 리스트의 요소와 별도로 새로운 인스턴스를 생성해야 할 때가 있습니다. 이러한 경우에는 깊은 복사(deep copy)를 사용해야 합니다. 이 블로그 게시물에서는 Java에서 ArrayList의 깊은 복사를 수행하는 여러 가지 방법을 살펴보겠습니다.
예제 1: Collections 클래스 사용
import java.util.ArrayList;
import java.util.Collections;
ArrayList<String> originalList = new ArrayList<>();
originalList.add("apple");
originalList.add("banana");
originalList.add("orange");
ArrayList<String> deepCopyList = new ArrayList<>(originalList);
deepCopyList.add("grape"); // Modify the deep copy list
System.out.println("Original list: " + originalList);
System.out.println("Deep copy list: " + deepCopyList);
위 예제에서는 Collections 클래스의 생성자를 사용하여 깊은 복사를 수행합니다. 이 방법은 간단하고 편리하지만, 리스트의 요소가 가변 객체일 경우 문제가 발생할 수 있습니다.
예제 2: 직접 복사
import java.util.ArrayList;
ArrayList<String> originalList = new ArrayList<>();
originalList.add("apple");
originalList.add("banana");
originalList.add("orange");
ArrayList<String> deepCopyList = new ArrayList<>();
for (String item : originalList) {
deepCopyList.add(item);
}
deepCopyList.add("grape"); // Modify the deep copy list
System.out.println("Original list: " + originalList);
System.out.println("Deep copy list: " + deepCopyList);
위 예제에서는 반복문을 사용하여 요소를 하나씩 복사하여 깊은 복사를 수행합니다. 이 방법은 요소가 가변 객체인 경우 안전하게 복사할 수 있습니다.
'프로그래밍' 카테고리의 다른 글
[Java/자바] 두 개의 리스트의 차집합 찾기 (0) | 2024.03.07 |
---|---|
[Java/자바] 두 개의 리스트의 교집합 찾기 (0) | 2024.03.07 |
[Java/자바] ArrayList에서 랜덤 요소 가져오기 (0) | 2024.03.07 |
[Java/자바] Set에 특정 요소 확인하기 (0) | 2024.03.07 |
[Java/자바] HashMap에서 특정 key, value 삭제하기 (0) | 2024.03.07 |