자바

자바 배열

thebasics 2024. 8. 17. 17:00

목차
1. 배열이란 무엇인가?
2. 1차원 배열
3. 2차원 배열
4. 배열의 초기화
5. 배열의 반복문 활용
6. 배열의 메서드 전달
7. 배열 예제와 분석
8. 결론 및 추가 학습 자료


1. 배열이란 무엇인가?

배열은 동일한 자료형의 여러 값을 저장할 수 있는 데이터 구조입니다. 배열을 사용하면 여러 개의 변수를 선언하지 않고도 데이터를 효율적으로 관리할 수 있습니다. 자바에서는 배열을 선언하고, 초기화하고, 접근하는 방법을 제공하여 다양한 배열 작업을 수행할 수 있습니다.


2. 1차원 배열

1차원 배열은 가장 기본적인 배열 형태로, 단일 차원에 데이터를 저장합니다.

1차원 배열 선언과 초기화:

// 배열 선언
자료형[] 배열이름;
자료형 배열이름[]; // 가능하지만 비추

// 배열 초기화
배열이름 = new 자료형[길이];

// 배열 선언과 동시에 초기화
자료형[] 배열이름 = new 자료형[길이];

예제:

public class OneDimensionalArray {
    public static void main(String[] args) {
        // 배열 선언과 초기화
        int[] numbers = new int[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("Element at index " + i + ": " + numbers[i]);
        }
    }
}

설명:
- 'int[] numbers = new int[5];': 길이가 5인 정수형 배열을 선언하고 초기화합니다.
- 'numbers[i]': 배열의 각 요소에 접근하여 값을 할당하거나 출력합니다.


3. 2차원 배열

2차원 배열은 행과 열로 구성된 배열로, 표 형태의 데이터를 저장할 때 사용됩니다.

2차원 배열 선언과 초기화:

// 배열 선언
자료형[][] 배열이름;

// 배열 초기화
배열이름 = new 자료형[행의 길이][열의 길이];

// 배열 선언과 동시에 초기화
자료형[][] 배열이름 = new 자료형[행의 길이][열의 길이];

예제:

public class TwoDimensionalArray {
    public static void main(String[] args) {
        // 배열 선언과 초기화
        int[][] matrix = new int[3][3];

        // 배열에 값 할당
        int value = 1;
        for (int i = 0; i < matrix.length; i++) {
            for (int j = 0; j < matrix[i].length; j++) {
                matrix[i][j] = value++;
            }
        }

        // 배열 값 출력
        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();
        }
    }
}

설명:
- 'int[][] matrix = new int[3][3];': 3x3 크기의 정수형 2차원 배열을 선언하고 초기화합니다.
- 'matrix[i][j]': 2차원 배열의 각 요소에 접근하여 값을 할당하거나 출력합니다.


4. 배열의 초기화

배열은 선언과 동시에 초기화할 수 있으며, 배열 리터럴을 사용하여 간편하게 값을 할당할 수 있습니다.

1차원 배열 초기화 예제:

public class ArrayInitialization {
    public static void main(String[] args) {
        // 배열 리터럴을 사용한 초기화
        int[] numbers = {10, 20, 30, 40, 50};

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

2차원 배열 초기화 예제:

public class TwoDimensionalArrayInitialization {
    public static void main(String[] args) {
        // 배열 리터럴을 사용한 초기화
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        // 배열 값 출력
        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();
        }
    }
}

5. 배열의 반복문 활용

반복문을 사용하면 배열의 각 요소를 효율적으로 처리할 수 있습니다. 'for' 문과 'for-each' 문을 사용하여 배열을 순회할 수 있습니다.

for 문을 사용한 배열 순회 예제:

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

        // for 문을 사용한 배열 순회
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("Element at index " + i + ": " + numbers[i]);
        }
    }
}

for-each 문을 사용한 배열 순회 예제:

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

        // for-each 문을 사용한 배열 순회
        for (int number : numbers) {
            System.out.println("Element: " + number);
        }
    }
}

6. 배열의 메서드 전달

배열은 메서드의 인수로 전달할 수 있으며, 메서드에서 배열을 반환할 수도 있습니다.

배열을 인수로 전달하는 예제:

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

    public static void printArray(int[] array) {
        for (int number : array) {
            System.out.println("Element: " + number);
        }
    }
}

배열을 반환하는 예제:

public class ArrayAsReturnValue {
    public static void main(String[] args) {
        int[] numbers = createArray();
        for (int number : numbers) {
            System.out.println("Element: " + number);
        }
    }

    public static int[] createArray() {
        int[] array = {10, 20, 30, 40, 50};
        return array;
    }
}

7. 배열 예제와 분석

다양한 배열 작업을 종합적으로 다루는 예제를 살펴보겠습니다.

종합 예제:

public class ArrayExamples {
    public static void main(String[] args) {
        // 1차원 배열 선언 및 초기화
        int[] oneDArray = {1, 2, 3, 4, 5};
        System.out.println("1차원 배열:");
        print1DArray(oneDArray);

        // 2차원 배열 선언 및 초기화
        int[][] twoDArray = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };
        System.out.println("\n2차원 배열:");
        print2DArray(twoDArray);

        // 배열을 메서드로 전달
        System.out.println("\n메서드로 배열 전달:");
        print1DArray(new int[]{10, 20, 30, 40, 50});

        // 배열을 메서드에서 반환
        System.out.println("\n메서드에서 배열 반환:");
        int[] returnedArray = createArray();
        print1DArray(returnedArray);
    }

    // 1차원 배열 출력 메서드
    public static void print1DArray(int[] array) {
        for (int number : array) {
            System.out.println("Element: " + number);
        }
    }

    // 2차원 배열 출력 메서드
    public static void print2DArray(int[][] array) {
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
    }

    // 배열을 반환하는 메서드
    public static int[] createArray() {
        return new int[]{60, 70, 80, 90, 100};
    }
}

코드 분석:

- 1차원 배열 출력: 'print1DArray' 메서드는 1차원 배열을 출력합니다.
- 2차원 배열 출력: 'print2DArray' 메서드는 2차원 배열을 출력합니다.
- 배열 전달 및 반환: 'createArray' 메서드는 배열을 반환하며, 메서드로 배열을 전달하는 예제도 포함되어 있습니다.


8. 결론 및 추가 학습 자료

이번 글에서는 자바의 1차원 배열과 2차원 배열에 대해 살펴보았습니다. 배열을 사용하면 데이터를 효율적으로 저장하고 관리할 수 있으며, 반복문과 결합하여 다양한 작업을 수행할 수 있습니다. 배열에 대한 이해를 바탕으로 자바 프로그래밍의 기본기를 탄탄히 다질 수 있습니다. 다음은 추가 학습 자료입니다:

추가 학습 자료:
- 자바 공식 문서: [Oracle Java Documentation](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html)
- 온라인 자바 튜토리얼: [W3Schools Java Arrays](https://www.w3schools.com/java/java_arrays.asp)
- 자바 코딩 연습 사이트: [GeeksforGeeks](https://www.geeksforgeeks.org/100-days-of-java/)

자바는 강력한 기능을 가진 프로그래밍 언어로, 꾸준히 학습하면 다양한 응용 프로그램을 개발할 수 있습니다. 이번 기회를 통해 자바의 배열을 잘 이해하고 더 나아가 복잡한 프로그래밍을 익히길 바랍니다.


이제 자바의 배열에 대해 자세히 이해하게 되었습니다. 다음 글에서는 자바의 메서드에 대해 다루도록 하겠습니다. 자바의 더 깊은 이해를 위해 계속해서 학습해나가세요!

반응형

'자바' 카테고리의 다른 글

자바 클래스와 객체  (0) 2024.08.19
자바 메서드  (0) 2024.08.18
자바 반복문  (0) 2024.08.16
자바 조건문  (0) 2024.08.15
자바 연산자  (0) 2024.08.14