요약
배열
같은 자료형의 데이터를 연속된 공간에 나열하고 인덱스를 부여해 놓은 자료구조
인덱스 : 배열 항목에 붙인 번호, 0 ~ n 까지의 범위
배열 선언(정의)
자료형[] 변수;
< 1 >
배열의 생성 , 다차원 배열 생성 , 향상된 for 문
배열 생성
1) 자료형[] 변수 = {값1,값2..};
2) 자료형[] 변수 = new 자료형[길이];
3) 자료형[] 변수 = new 자료형[길이]{값1,값2...};
배열 길이
//배열의 값의 개수 (읽기 전용)
배열변수.length
다차원 배열
배열 안에 또다른 배열이 있음
1) 자료형[][] 변수 = new 자료형[크기][크기];
2) 자료형[][] 변수 = {{값1,값2...} , {값1,값2...}};
향상된 for 문
자동으로 인덱스 증가
for(자료형 변수 : 배열) { 반복문 }
< 2 >
복사
얇은 복사
예시
// TODO: 얇은 복사
int[] oldArray = {1,2,3};
int[] copyArray = oldArray; // 같은 주소 할당
♠\ 참조 /♠
문제점
같은 주소를 공유(?) 하고 있다!
얇은 복사 특징
oldArray 값을 변경하면 copyArray 값도 같이 변경됨
반대로 copyArray 값을 변경하면 oldArray 값도 같이 변경됨
깊은복사
위의 현상을 피하고자 깊은 복사를 한다.
예시
int[] newArray = new int[3]; // 깊은 복사용 변수 : 랜덤 주소 할당
// for : 반복문 이용
for(int i = 0; i < 3; i++) {
newArray[i] = oldArray[i]; // 깊은 복사(원본 값이 바뀌어도 복사본이 바뀌지 않음)
}
♠\ 참조 /♠
따라서 주소가 다르기 때문에
원본 값이 바뀌어도 복사본은 바뀌지 않는다.
'JAVA' 카테고리의 다른 글
Java - 자동 속성 초기화 (0) | 2023.09.20 |
---|---|
Java - 열거형 클래스 (0) | 2023.09.19 |
Java - 2중 반복문의 라벨 (0) | 2023.09.19 |
Java - Scanner (0) | 2023.09.18 |
Java - 문자열 ~> 자료형 변환 또는 반대로 (0) | 2023.09.18 |