2023. 5. 9. 17:48ㆍLanguages/JAVA
💬 기억하고 싶거나 공부한 내용을 기록중입니다 :)
1️⃣ 배열 복사
- 필요성 : 배열은 생성 후 크기를 바꿀 수 없기 때문에, 더 큰 배열을 생성 후 기존 배열을 새로 만든 배열로 복사하게 된다.
- 종류 (*편의상 기존 배열은 oldA, 새로운 배열은 copyB라고 가정)
1. 얕은 복사 (shallow copy) : 주소(객체의 번지)를 복사하며, 동일 주소지를 참조하게 된다.
- 예시
int[] oldA = new int[]{1,2,3,4,5};
int[] copyB = new int[old A];
2. 깊은 복사 (deep copy) : 새로운 메모리 공간을 확보한 뒤, 기존 배열의 값을 공간에 복사한다.
1) for문;
- 예시
int[] oldA = new int[]{1,2,3,4,5};
for(int i=0;i<oldA.length;i++) {
copyB[i]=oldA[i];
}
2) object.clone();
- 예시
int[] oldA = new int[]{1,2,3,4,5};
copyB = oldA.clone();
3) Arrays.copyOf();
- 예시
int[] oldA = new int[]{1,2,3,4,5};
copyB = Arrays.copyOf(oldA, oldA.length);
4) Arrays.copyOfRange();
- 예시
int[] oldA = new int[]{1,2,3,4,5};
copyB=Arrays.copyOfRange(oldA, 0, oldA.length);
5) System.arraycopy();
- 예시
int[] oldA = new int[]{1,2,3,4,5};
System.arraycopy(oldA, 0, copyB, 0, oldA.length);
'Languages > JAVA' 카테고리의 다른 글
| [JAVA] 클래스, getter/setter, 인스턴스(instance)/정적(static) (0) | 2023.05.15 |
|---|---|
| [JAVA] 클래스 구성 범위, 참조 변수 선언, 객체 생성 (0) | 2023.05.10 |
| [JAVA] 데이터 타입, 배열 (0) | 2023.05.08 |
| [JAVA] 조건문, Math.random() (0) | 2023.05.04 |
| [JAVA] 연산자, 반복문 (0) | 2023.05.04 |