백엔드 개발자 공부/Java

[Java] 배열

gotoguy 2022. 9. 1. 22:47
728x90

배열

    - 동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조
    - 요소(element) : 배열이 가진 각 값들
    - 인덱스(index) : 배열의 각 요소가 부여받는 순번(0부터 시작)

 

배열의 차원

    - 배열의 요소가 또 다른 배열인 경우 배열이 중첩된 정도
    - 1차원 배열 : 배열의 중첩이 없는 경우 e.g. { 1, 2, 3, 4 }

    - 다차원 배열(2차원 배열, 3차원 배열, ...) : 배열이 중첩된 경우 e.g. { { 1, 2, 3, 4 }, { 5, 6, 7, 8 } }

 

1차원 배열

    - 배열 선언

 // 배열을 가리킬 참조 변수 temperatureOfJuly 선언
double[] temperatureOfJuly;

 // 31개의 double형을 저장할 수 있는 배열을 생성하고, 배열 첫 번째 요소의 주소값이 temperatureOfJuly에 할당됨
temperatureOfJuly = new double[31];

    - 선언과 초기화를 한 문장에 작성

// 1
double[] temperatureOfJuly = new double[31];

// 2
double[] temperatureOfJuly = new double[] { 27.4, 30.1, ... , 31.8 };

// 3
// 한 문장으로 작성하면 new double[] 생략 가능
double[] temperatureOfJuly = { 27.4, 30.1, ... , 31.8 };

    - 배열 값 접근 : [인덱스]

temperatureOfJuly[0], temperatureOfJuly[1], ... , temperatureOfJuly[30]

    - 배열 길이: length

System.out.println(temperatureOfJuly.length);	// 31

 

2차원 배열

    - 배열 선언

int[][] kcal;	// 한달 간 세끼 식사의 칼로리를 기록할 kcal 배열 선언
kcal = new int[31][3];	// { { 0, 0, 0 }, { 0, 0, 0 }, ... , { 0, 0, 0 } }

    - 선언과 초기화를 한 문장에 작성

// 1
int[][] kcal = new int[31][3];

// 2
int[][] kcal = new int[][] {
	{ 1982, 2098, 2130 },
	{ 2242, 2431, 2198 },
	...
	{ 2278, 2391, 2006}}
}

// 3
int[][] kcal ={	// 한 문장으로 작성하면 new int[][] 생략 가능
	{ 1982, 2098, 2130 },
	{ 2242, 2431, 2198 },
	...
	{ 2278, 2391, 2006}}
}

 

가변 배열

    - 배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되며, 이러한 배열을 가변 배열이라고 함
    - 배열 선언

int[][] ages = new int[5][];

    - new int[]를 사용하여 내부배열을 생성하고 외부 배열의 각 요소에 할당

ages[0] = new int[5]; -> Arrays.toString(ages[0]) = [0, 0, 0, 0, 0]
ages[1] = new int[6]; -> Arrays.toString(ages[1]) = [0, 0, 0, 0, 0, 0]

    - 일반적인 배열과 같이 생성과 초기화를 동시에 할 수 있음

int[][] ages = {
	{ 30, 32, 39, 59, 23 },
	{ 31, 41, 52, 56, 72, 13},
	...
	{ 13, 14}
}

 

반복문을 통한 배열 탐색

    - 인덱스와 배열의 크기(length)를 활용하여 배열 탐색

    - for문

int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;

for (int i = 0; i < scores.length; i++) {
	sum += scores[i];
}

System.out.println(sum);	// 405

    - while문

int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;
int i = 0;

while (i < scores.length) {
	sum += scores[i++];
}

System.out.println(sum);	// 405

    - 향상된 for문 : 배열의 값을 읽어오는 것만 가능하고, 수정은 불가능

int[] scores = { 100, 90, 60, 70, 85 };
int sum = 0;

for (int score: scores) {
	sum += score;
}

System.out.println(sum);	// 405
728x90

'백엔드 개발자 공부 > Java' 카테고리의 다른 글

[Java] JSON  (0) 2022.09.21
[Java] 재귀 함수  (0) 2022.09.20
[Java] 제어문 (2) - 반복문  (0) 2022.08.31
[Java] 제어문 (1) - 조건문  (0) 2022.08.31
[Java] 연산자 & 콘솔입출력  (0) 2022.08.30