배열(Array)

김예인·2023년 4월 21일

백엔드 공부일지

목록 보기
8/43
post-thumbnail

| 배열(Array)

배열이란?

동일한 타입의 값들을 하나의 묶음으로 묶은 자료 구조
= 메모리 공간 상에 물리적으로 값들을 모아서 저장하는 것

  • 요소(element) : 배열이 가진 각 값들
  • 인덱스(index) : 배열의 각 요소가 부여받는 순번
* 배열의 맨 첫 번째 요소의 인덱스는 0

배열의 차원이란?

차원 : 배열이 중첩된 정도
다차원 배열 : 배열의 요소가 또 다른 배열인 경우

1. 1차원 배열 : {1,2,3,4}
2. 2차원 배열 : { { 1,2,3,4 }, { 5,6,7,8 } }

[ 1차원 배열 ]

선언과 초기화

1.
double[] 배열의 참조변수 이름;
배열의 참조변수 이름 = new double[배열의 크기];

2.
double[] 배열의 참조변수 이름 = new double[배열의 크기];

3. 실제값을 넣어서 초기화
double[] 배열의 참조변수 이름 = { 27.4, 30.1, 31.1, 32.4, ..., 31.8 };
  • 자바에서 배열은 '참조 타입'에 해당
  • 참조 타입의 참조 변수에는 생성된 배열 첫 번째 요소의 '주소값'이 할당
  • 배열의 모든 요소는 초기값으로 설정
    • int : 0
    • double : 0.0
    • string : null

값 접근하기

  1. 배열_참조_변수_이름[인덱스] 로 해당 인덱스 요소 접근
  2. Arrays.toString(배열_참조_변수_이름) 로 전체 요소 접근
String[] favoriteThings = {"오렌지", "딸기", "포도"};

1. System.out.println(favoriteThings[0]); // 오렌지
2. System.out.println(Arrays.toString(favoriteThings)); // [오렌지, 딸기, 포도]

배열의 길이(크기)

배열이 가진 요소의 개수, 배열_참조_변수_이름.length 로 얻는다

* 마지막 요소의 인덱스 = 배열의 길이 - 1

[ 2차원 배열 ]

선언과 초기화

1. 
int[][] 배열의 참조변수 이름;
배열의 참조변수 이름 = new int[배열의 크기];

2. 
int[][] 배열의 참조변수 이름 = new int[배열의 크기];

3. 실제값을 넣어서 초기화

int[] 배열의 참조변수 이름 = { 
	{ 1982, 2098, 2130 }, 
	{ 2242, 2431, 2198 }, 
	{ 2365, 1997, 1932 },
	
	...

	{ 2278, 2391, 2006 }
};

[ 가변 배열 ]

배열이 2차원 이상일 때, 마지막 차수에 해당하는 배열의 길이를 고정하지 않아도 되는 배열

선언과 초기화

내부 배열의 크기를 자유롭게 지정할 수 있는 외부 배열 즉, 외부 배열만 생성된 상태

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

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

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

ages[0] = new int[5];
ages[1] = new int[6];
ages[2] = new int[7];
ages[3] = new int[8];  
ages[4] = new int[9];

// 결과
// Arrays.toString(ages[0]) = [0, 0, 0, 0, 0]
// Arrays.toString(ages[1]) = [0, 0, 0, 0, 0, 0]
// Arrays.toString(ages[2]) = [0, 0, 0, 0, 0, 0, 0]
// Arrays.toString(ages[3]) = [0, 0, 0, 0, 0, 0, 0, 0]
// Arrays.toString(ages[4]) = [0, 0, 0, 0, 0, 0, 0, 0, 0]

가변 배열도 선언과 초기화를 동시에 할 수 있다.

int[][] ages = {
	{ 30, 32, 39, 59, 23 },
	{ 31, 41, 52, 56, 72, 13 },
	{ 45, 32, 84, 23, 13, 42, 55 },
	{ 23, 41, 62, 64, 23, 51, 67, 98 },
	{ 13, 14, 17, 84, 52, 37, 68, 66, 33 }
};

[ 배열 탐색 ]

  1. for 문 으로 배열 순회
  2. while 문 으로 배열 순회
  3. Enhanced for 문 으로 배열 순회
* 향상된 for문으로 배열을 순회하면서 배열의 값을 수정할 수는 없습니다.
profile
백엔드 개발자 김예인입니다.

0개의 댓글