CHAPTER 09. 배열 알아가기
배열이란?
같은 형의 자료가 n개 존재할 경우의 표현법이다. 개수가 정해진 자료형으로, 동일한 자료형의 변수를 한꺼번에 순차적으로 관리할 수 있다.
- [] : 인덱스 연산자 사용한다.
- 배열의 위치를 지정하여 자료를 가져온다.
- 모든 배열이 순서는 0부터 시작한다.
1 ) 배열 구문
- 자료형[] 배열 이름 = new 자료형[개수];
- 자료형 배열 이름[] = new 자료형[개수];
- 자료형[]배열이름 = new 자료형[] { 초기값1,초기값2,~~~}
# Ex
int[]nums = new int[5];
int[]arrs = {1,2,3,4,5,};
Integer[]nums = new Integer[5];
Integer[]nums = new Integer[]{1,2,3,4,5,};
2 ) 숫자 1~ 100까지 배열을 사용해서 담아보기. ( int , String )
< int >
int[] nums = new int[100];
int len = nums.length;
for (int i = 0; i < len; i++) {
nums[i] = (i + 1);
System.out.println(nums[i]);
}
}
}
tip) 출력 값은 자주 사용하므로 함수로 빼주자.
< String >
String[] strs = new String[100];
int len = strs.length;
for (int j = 0; j < len; j++) {
strs[j] = "strs" + (j + 1);
}
arr2(strs);
}
3 ) 얕은(shallow) 복사 vs 깊은(deep) 복사
# 얕은(shallow) 복사
- 객체 배열의 복사는 항상 Instavce 주소가 복사된다.
(System.arraycopy도 동일하고, 원본이 수정되면 복사본도 함께 변경됨!) ---> people2[i] = people[i];
# 깊은(deep) 복사
-완전한 복사를 하고 싶을 경우, 새롭게 Instance를 만들고 값을 복사해야 한다.
( people2[i] = new Man(people[i].getName());)
# 배열 복사
- 기존 배열과 같은 배열을 만들거나 배열이 꽉 찬 경우 더 큰 배열을 만들고 기존 배열 자료를 복사할 수 있다.
Ex) System.arraycopy (src, srcPos, dest, destPos, leagth);
매개 변수 | 설 명 |
src | 복사할 배열 이름 |
srcPos | 복사할 배열의 첫 번째 위치 |
dest | 복사해서 붙여 넣을 대상 배열 이름 |
destPos | 복사해서 대상 배열에 붙여 넣기를 시작할 첫 번째 위치 |
length | src에서 dest로 자료를 복사할 요소 개수 |
# 배열의 Loop
- 배열의 처음에서 끝까지 모든 요소를 참조할 때 사용하면 편리한 반복문이다. ( 향상된 for문 )
- for(변수 : 배열 ) {
반복 실행문;
}
# for loop
for( int i = 0; i < arr.length; i++) {
........
}
# for each
for( String s : strArray ) {
.........
}
예시 ) foreach를 사용하여 배열 완성하기. ( 김1수 ~ 김9수 출력하기)
< foreach 예시 >
< 얕은(shallow) 복사 vs 깊은(deep) 복사 예시 >
마치며
다음 포스팅에선 다차원 배열과 ArrayList 포스팅을 하겠습니다. 배열은 실무에서도 자주 사용하기 때문에 이해하고 넘어가는 건 필수 !!
'[ JAVA ] > JAVA' 카테고리의 다른 글
[ Java ] 상속과 다형성 (0) | 2022.12.14 |
---|---|
[ Java ] 배열 ( ArrayList ) (0) | 2022.12.13 |
[ Java ] 클래스와 객체2 (0) | 2022.11.30 |
[ Java ] 클래스와 객체1 (0) | 2022.11.25 |
[ Java ] Method (0) | 2022.11.23 |