프로그래밍 언어/Java
[Java] 깊은복사(deepcopy)
DevPing9_
2021. 10. 4. 20:04
1. 원시타입의 1차원배열
# clone() 메서드
- 배열안의 값을 복사함
- 따라서, 1차원배열은 deepcopy 가능하나 2차원배열이나 객체배열은 사용 불가능
(2차원배열은 사실상 1차원배열이고, element는 각 1차원배열의 주소값이니, 배열안의 값을 복사하면 주소값을 복사하는 셈)
(1차원 객체배열도 같은원리)
2. 원시타입 -> 오브젝트 타입
# Stream을 이용한 복사
- Java 8 이후 버전
- Arrays.stream(원시타입배열).boxed().collect(Colletors.to구현된원하는 자료형());
# for 문을 이용한 복사
- 그냥 for 문으로 복사...
3. 오브젝트 타입 -> 오브젝트 타입
# 생성자를 이용한 deepcopy
- ArrayList<Integer> copiedArrList = new ArrayList<>(arrList1);
# for 문을 이용한 복사
- 그냥 for 문으로 복사...
728x90