코딩 스쿨 Java

언어선택 : HTMLCSSJAVAJAVASCRIPTMYSQLSQL PHP

Java Arrays

Java Arrays: 자바 배열 가이드

  • *배열(Array)**은 동일한 데이터 타입의 여러 값을 하나의 변수에 저장할 수 있는 데이터 구조입니다. 배열은 Java에서 가장 기본적인 자료 구조로, 각 요소가 인덱스를 통해 접근 가능하며, 크기가 고정되어 있습니다. 배열은 동일한 데이터 타입만을 저장할 수 있으며, 한 번 선언되면 크기가 변경되지 않습니다.

이 가이드는 Java에서 배열을 선언하고 사용하는 방법을 설명하며, 다양한 배열 작업을 수행하는 예시를 제공합니다.


1. 배열 선언 및 초기화

배열 선언:

배열을 선언할 때는 데이터 타입과 **대괄호([])**를 사용하여 배열임을 표시합니다.

데이터타입[] 배열이름;

배열 초기화:

배열을 선언한 후 크기를 지정하고 초기화할 수 있습니다. 배열의 크기를 지정하면 그 크기만큼의 메모리 공간이 할당됩니다.

배열이름 = new 데이터타입[크기];

배열 선언과 동시에 초기화:

배열을 선언하면서 동시에 초기화할 수 있습니다.

데이터타입[] 배열이름 = new 데이터타입[크기];

사용 예:

public class ArrayExample {
    public static void main(String[] args) {
        // 배열 선언
        int[] numbers = new int[5];  // 크기가 5인 정수형 배열 선언

        // 배열 초기화
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;

        // 배열 요소 출력
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("배열 요소 " + i + ": " + numbers[i]);
        }
    }
}

설명:

  • 배열 선언: int[] numbers = new int[5];는 크기가 5인 정수 배열을 선언합니다.
  • 배열 초기화: 배열의 각 인덱스에 값을 할당합니다.
  • 배열 요소 출력: for 반복문을 사용하여 배열의 모든 요소를 출력합니다.

2. 배열의 기본값

배열을 생성하면 각 요소는 기본값으로 초기화됩니다:

  • 정수형 배열: 0
  • 실수형 배열: 0.0
  • 문자형 배열: \\\\u0000 (빈 문자)
  • 논리형 배열: false
  • 참조형 배열: null

사용 예:

public class ArrayDefaultValues {
    public static void main(String[] args) {
        int[] intArray = new int[3];  // 정수형 배열
        boolean[] boolArray = new boolean[3];  // 논리형 배열

        System.out.println("정수 배열 기본값: " + intArray[0]);  // 출력: 0
        System.out.println("논리 배열 기본값: " + boolArray[0]);  // 출력: false
    }
}


3. 배열의 크기

배열의 크기는 고정되어 있으며, 배열을 선언할 때 지정한 크기를 나중에 변경할 수 없습니다. 배열의 크기를 알기 위해 length 속성을 사용할 수 있습니다.

사용 예:

public class ArrayLengthExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        System.out.println("배열의 크기: " + numbers.length);  // 출력: 5
    }
}


4. 배열 선언과 동시에 값 초기화

배열을 선언할 때 값을 직접 초기화할 수 있습니다. 이를 통해 배열 선언과 초기화를 동시에 할 수 있습니다.

사용 예:

public class ArrayInitialization {
    public static void main(String[] args) {
        // 배열 선언과 동시에 값 초기화
        int[] numbers = {10, 20, 30, 40, 50};

        // 배열 요소 출력
        for (int num : numbers) {
            System.out.println(num);
        }
    }
}

설명:

  • 배열 선언과 초기화: int[] numbers = {10, 20, 30, 40, 50};는 값을 바로 초기화하면서 배열을 선언합니다.
  • for-each: for (int num : numbers)는 배열의 각 요소를 순회하며 출력합니다.

5. 다차원 배열 (2차원 배열)

Java에서는 다차원 배열을 사용할 수 있으며, 가장 일반적인 다차원 배열은 2차원 배열입니다. 2차원 배열은 행과 열로 구성된 배열입니다.

2차원 배열 선언:

데이터타입[][] 배열이름 = new 데이터타입[행][열];

사용 예:

public class TwoDimensionalArray {
    public static void main(String[] args) {
        // 2차원 배열 선언과 초기화
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // 2차원 배열 출력
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                System.out.print(matrix[i][j] + " ");
            }
            System.out.println();  // 줄 바꿈
        }
    }
}

설명:

  • 2차원 배열: int[][] matrix는 행과 열로 구성된 2차원 배열입니다.
  • 중첩 for: for (int i = 0; i < matrix.length; i++)는 각 행을, for (int j = 0; j < matrix[i].length; j++)는 각 열을 순회합니다.

출력 결과:

1 2 3
4 5 6
7 8 9


6. 배열 복사

배열을 복사할 때는 직접 복사하거나 System.arraycopy() 메소드를 사용할 수 있습니다.

6.1. 직접 복사

public class ArrayCopyExample {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        int[] copy = new int[original.length];

        for (int i = 0; i < original.length; i++) {
            copy[i] = original[i];  // 요소 복사
        }

        System.out.println("복사된 배열: ");
        for (int num : copy) {
            System.out.print(num + " ");
        }
    }
}

6.2. System.arraycopy()를 사용한 배열 복사

public class ArrayCopyMethodExample {
    public static void main(String[] args) {
        int[] original = {1, 2, 3, 4, 5};
        int[] copy = new int[original.length];

        System.arraycopy(original, 0, copy, 0, original.length);

        System.out.println("복사된 배열: ");
        for (int num : copy) {
            System.out.print(num + " ");
        }
    }
}


7. 배열 정렬

배열을 정렬할 때는 Arrays.sort() 메소드를 사용할 수 있습니다. 이 메소드는 배열을 오름차순으로 정렬합니다.

사용 예:

import java.util.Arrays;

public class ArraySortExample {
    public static void main(String[] args) {
        int[] numbers = {30, 10, 40, 20, 50};

        // 배열 정렬
        Arrays.sort(numbers);

        System.out.println("정렬된 배열: ");
        for (int num : numbers) {
            System.out.print(num + " ");
        }
    }
}

결과:

정렬된 배열:
10 20 30 40 50


8. 배열의 주요 메소드 (Arrays 클래스)

Java는 배열을 다루기 위한 다양한 유틸리티 메소드를 제공하는 Arrays 클래스를 제공합니다. 주요 메소드는 다음과 같습니다:

주요 메소드:

  • Arrays.sort(array): 배열을 오름차순으로 정렬.
  • Arrays.toString(array): 배열을 문자열 형태로 반환.
  • Arrays.fill(array, value): 배열을 특정 값으로 채움.
  • Arrays.equals(array1, array2): 두 배열이 같은지 비교.

사용 예:

import java.util.Arrays;

public class ArraysUtilityExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};

        // 배열을 문자열로

 변환
        System.out.println("배열: " + Arrays.toString(numbers));

        // 배열을 특정 값으로 채움
        Arrays.fill(numbers, 0);
        System.out.println("배열을 0으로 채운 후: " + Arrays.toString(numbers));
    }
}

결과:

배열: [1, 2, 3, 4, 5]
배열을 0으로 채운 후: [0, 0, 0, 0, 0]


요약

Java의 배열동일한 데이터 타입의 여러 값을 저장할 수 있는 중요한 데이터 구조입니다. 배열은 크기가 고정되며, 인덱스를 통해 각 요소에 접근할 수 있습니다. 또한 다차원 배열, 배열 복사, 배열 정렬 등을 통해 배열을 효율적으로 관리할 수 있습니다. Arrays 클래스는 배열을 다루기 위한 유용한 메소드를 제공하여, 배열 작업을 더욱 간편하게 수행할 수 있습니다.


copyright ⓒ 스타트코딩 all rights reserved.
이메일 : startcodingim@gamil.com