[JAVA] 배열(Array)

뽕칠이·2024년 1월 9일

배열(array)

  • 배열이란 인덱스와 인덱스에 대응하는 데이터들로 이루어진 연속적인 자료 구조로서, 같은 종류의 데이터들이 순차적으로 저장된다.

배열 선언 및 생성

// 배열 선언
int [] numArr1;
int numArr2[];

// 배열 생성
numArr1 = new int[10];

// 배열 초기화
numArr2 = {4, 3, 2, 1, 0};

// 배열 선언과 생성
int[] numArr3 = new int[100];

레퍼런스 변수

int [] numArr1;
int numArr2[];

배열 선언만으로는 배열 공간이 할당되지 않고 레퍼러스 변수만 생선된다.

배열 생성

numArr1 = new int[10];

레퍼런스 변수에 new 연산자를 이용하여 배열을 생성하고 [] 안에 원소의 개수를 지정한다.

배열 인덱스

int numArr = new int[5];	// 배열 생성
numArr[0] = 100;			// 0번째 인덱스에 100 저장
numArr[3] = 200;			// 3번째 인덱스에 300 저장
int num = numArr[0];		// 변수 n에 numArr[0] 저장

자바에서는 인덱스에 음수를 사용할 수 없다.

레퍼런스 치환과 배열 공유

int numArr[] = new int[5];
int myArr[] = numArr;		// numArr과 myArr은 동일한 배열 참조

numArr[0] = 1;
myArr[1] = 5;

System.out.println(numArr[0]);		// 1
System.out.println(myArr[0]);		// 1
System.out.println(numArr[1]);		// 5
System.out.println(myArr[1]);		// 5

myArr[0] = 100;

System.out.println(numArr[0]);		// 100
System.out.println(myArr[0]);		// 100

numArr과 myArr이 독립적으로 존재하는 것이 아니라, myArr은 numArr의 주소(레퍼런스)를 복사한 것이므로 서로 배열을 공유한다.

배열의 길이(length)

int[] numArr = new int[5];
int sizeNum = numArr.length;	// 5

int[] myArr = new int[5];
myArr[0] = 1;
myArr[1] = 2;
myArr[2] = 3;

int sizeMy = myArr.length;		// 5

2차원 배열

// 2차원 배열 선언
int [][] numArr1;
int numArr2 [][];

// 2차원 배열 생성
numArr1 = new int[3][5];		// 3행 5열의 2차원 배열 생성
numArr2 = new int[9][3];		// 9행 3열의 2차원 배열 생성

// 2차원 배열의 길이
colLength = numArr1.length;		// 2차원 배열의 행의 개수
rowLength = numArr1[0].length;	// 0번째 행의 열의 개수

// 2차원 배열의 초기화
int[][] numArr3 = {{1, 2, 3}, {4, 5, 6}};		// 2행 3열 2차원 배열 생성

비정방형 배열

  • 행마다 열의 개수가 다른 배열
int i[][] = new int[4][];
i[0] = new int[1];
i[1] = new int[2];
i[2] = new int[3];
i[3] = new int[4];

0개의 댓글