#배열
: 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조를 의미한다.
배열은 동일한 타입의 많은 값을 저장하기 위해 많은 변수를 선언해야할 때 사용한다.
배열을 사용하는 이유는 비슷한 유형의 값들을 저장할 때 메모리공간을 절약하고,
변수 선언의 번거로움을 줄일 수 있기 때문이다.
#배열의 차원
:배열의 차원은 배열이 중첩된 정도를 의미한다.
중첩의 의미는 배열안의 요소가 배열인 경우이다.
*특징은 배열은 참조 타입으로 선언된다. 즉 배열을 선언할 때 변수명에는 배열의 주소값만 담긴다.
왜나하면 처음 배열이 선언될 때에 몇 개의 요소가 담길 지 모르기 때문이다.
주로 사용하는 1,2차원 배열만 정리하자면 다음과 같다.
(1) 1차원 배열
: 배열의 요소가 배열이 아닌 배열.
타입 뒤에 []을 붙여 선언하고 초기화한다.
ex. (타입) [] (참조변수명) = new (타입) [배열크기];
배열 내 값에 접근하는 방법은 다음과 같다.
int [] arr = { 1, 2, 3, 4, 5}
arr[0] = 1;
배열 내 모든 요소는 0부터 시작하는 해당하는 인덱스(주소)를 가지고 있다.
배열의 길이는 요소의 갯수와 같다.
요소의 인덱스 주소가 0부터 시작되므로 마지막 요소의 인덱스 번호는 (배열의 길이 - 1)이다.
(2) 2차원 배열
:배열의 요소가 배열인 배열.
외부 배열과 내부 배열이 존재.
ex. int[][] arr2 = new int[7][3];
위 배열은 { {0, 0, 0}, {0, 0, 0}, ... {0, 0, 0} } 과 같다.
(3)가변 배열
: 2차원 이상의 배열에서, 마지막 차수에 해당하는 배열의 길이가 고정되지 않은 배열.
ex. int [][] arr = new int[5][];
위와 같이 선언 시. 외부 배열만 생성된 상태이다.
후에 내부 배열은 외부 배열의 각 요소에 할당하여 생성한다.
int[][] arr = new int[3][];
arr[0] = new int[1];
arr[1] = new int[2];
arr[2] = new int[3];
arr[3] = new int[4];
//출력값: arr[0] = [0]
//arr[1] = [0, 0]
//arr[2] = [0, 0, 0]
//arr[3] = [0, 0, 0, 0]
#배열탐색
: 인덱스와 배열의 크기를 활용하여 탐색한다.
(1) for문 활용
int[] height = { 150, 160, 170, 180, 190 };
int sum = 0;
for (int i =0; i < height.length; i++) {
sum += height[i];
}
System.out.println(sum); // 850
(2) while문 활용
int[] height = { 150, 160, 170, 180, 190 };
int sum = 0;
while (i < height.length1) {
sum += height[i];
}
System.out.println(sum); // 850
(3) 향상된 for문
int[] height = { 150, 160, 170, 180, 190 };
int sum = 0;
for (int height: height) {
sum += height;
}
System.out.println(sum); // 850
*향상된 for문으로 배열 탐색시, for문/while문 과는 다르게 요소의 값을 수정할 수 없다.
'개발지 > Today I learn' 카테고리의 다른 글
[0718] 자바 객체지향프로그래밍 2 (필드와 메서드) (0) | 2023.07.19 |
---|---|
[0717] 자바 객체지향프로그래밍 1 (클래스와 객체) (0) | 2023.07.17 |
[0710] 자바 기초 9 (콘솔 입/출력, 제어문) (0) | 2023.07.14 |
[0710] 자바 기초 8 (연산자) (0) | 2023.07.12 |
[0707] 자바 기초 7 (StringTokenizer, StringBuilder, StringBuffer) (0) | 2023.07.11 |