배열

배열 에서 Java

24개의 연습 문제

배열 소개

Java에서 배열은 같은 타입의 여러 값을 하나의 구조에 저장하는 방법이에요. 다른 자료 구조와 달리 배열은 한 번 만들면 크기가 고정돼요. 인덱스를 사용해 배열에 원소를 할당하거나 배열에서 원소를 가져올 수 있어요. Java 배열은 0부터 시작하는 인덱싱을 사용해요. 첫 번째 원소의 인덱스는 0이고, 두 번째 원소의 인덱스는 1이에요.

배열을 초기화하는 표준 문법은 다음과 같아요.

type[] variableName = new type[size];

type은 배열에 들어가는 원소의 타입이고, 기본 타입(예: int)일 수도 있고 클래스(예: String)일 수도 있어요.

size는 이 배열이 담을 원소의 개수예요(나중에 바꿀 수 없어요). 배열을 만들면 원소들은 각자의 기본값(보통 0, false, null)으로 초기화돼요.

// Declare array with explicit size (size is 2)
int[] twoInts = new int[2];

배열은 값을 만들면서 동시에 값을 지정할 수 있는 축약 표기법으로도 정의할 수 있어요.

// Two equivalent ways to declare and initialize an array (size is 3)
int[] threeIntsV1 = new int[] { 4, 9, 7 };
int[] threeIntsV2 = { 4, 9, 7 };

이제 컴파일러가 배열에 원소가 몇 개 들어가는지 알 수 있으므로, 길이는 생략할 수 있어요.

배열 원소는 대괄호 인덱스 표기법으로 할당하고 접근할 수 있어요.

// Assign second element by index
twoInts[1] = 8;

// Retrieve the second element by index and assign to the int element
int secondElement = twoInts[1];

배열의 유효한 인덱스 범위를 벗어난 인덱스에 접근하면 IndexOutOfBoundsException이 발생해요.

배열은 배열 인스턴스의 메서드나 속성을 호출하거나, Arrays 클래스에 정의된 정적 메서드를 사용해서 다룰 수 있어요(보통 제네릭 코드에서만 사용해요). length 속성은 배열의 길이를 담고 있어요. 다음과 같이 접근할 수 있어요.

int arrayLength = someArray.length;

Java는 유용한 유틸리티 클래스 java.util.Arrays도 제공하는데, 배열과 관련된 쓸모 있는 메서드가 많이 들어 있어요(예: Arrays.equals).

Java는 int[][] arr = new int[3][4]; 같은 다차원 배열도 지원하는데, 아주 유용하게 쓸 수 있어요.

배열이 _컬렉션_이기도 하다는 점은, 인덱스로 값을 접근하는 것 외에도 for-each문을 사용해 모든 값 위를 반복할 수 있다는 뜻이에요.

char[] vowels = { 'a', 'e', 'i', 'o', 'u' };

for(char vowel: vowels) {
    // Output the vowel
    System.out.print(vowel);
}

// => aeiou

어떤 값 위를 반복할지 더 세밀하게 제어하고 싶다면 for문을 사용할 수 있어요.

char[] vowels = { 'a', 'e', 'i', 'o', 'u' };

for (int i = 0; i < 3; i++) {
    // Output the vowel
    System.out.print(vowels[i]);
}

// => aei
GitHub에서 편집 링크가 새 창이나 탭에서 열려요

배열 배우기