Responsive Advertisement

Java Arrays: 데이터를 효율적으로 관리하는 기본 구조

Java의 배열(Arrays)은 동일한 데이터 타입의 값을 효율적으로 관리할 수 있도록 도와주는 데이터 구조입니다. 배열은 고정된 크기의 메모리를 할당받아, 여러 개의 값을 하나의 변수로 처리할 수 있게 해줍니다. 이번 글에서는 Java 배열의 기본 개념, 생성 방법, 활용 예제, 그리고 유용한 배열 메서드를 알아보겠습니다.

1. 배열이란 무엇인가?

배열은 동일한 데이터 타입의 값을 연속된 메모리 공간에 저장하는 자료 구조입니다. 각 값은 인덱스로 접근할 수 있으며, 인덱스는 0부터 시작합니다.

예를 들어, 학생 5명의 점수를 저장하려면 5개의 변수를 선언하는 대신, 배열을 사용하면 하나의 변수로 관리할 수 있습니다.

배열의 특징:

  • 같은 데이터 타입만 저장 가능
  • 고정된 크기
  • 인덱스를 통해 요소에 접근

2. 배열 선언 및 생성

Java에서 배열을 선언하고 생성하는 방법은 다음과 같습니다.

배열 선언

int[] numbers; // 정수형 배열 선언
String[] names; // 문자열 배열 선언

배열 생성

numbers = new int[5]; // 크기가 5인 정수형 배열 생성
names = new String[3]; // 크기가 3인 문자열 배열 생성

배열을 선언과 동시에 생성할 수도 있습니다.

int[] numbers = new int[5];
String[] names = new String[3];

배열 초기화

배열 생성 시 값을 초기화할 수도 있습니다.

int[] numbers = {10, 20, 30, 40, 50}; // 정수형 배열 초기화
String[] names = {"Alice", "Bob", "Charlie"}; // 문자열 배열 초기화

3. 배열 요소 접근 및 수정

배열 요소에 접근하거나 값을 수정하려면 인덱스를 사용합니다.

예제: 배열 요소 접근 및 수정

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

        // 배열 요소 접근
        System.out.println("첫 번째 요소: " + numbers[0]); // 10

        // 배열 요소 수정
        numbers[0] = 100;
        System.out.println("수정된 첫 번째 요소: " + numbers[0]); // 100
    }
}

출력 결과:

첫 번째 요소: 10  
수정된 첫 번째 요소: 100  

4. 배열 활용 예제

4.1 배열 요소 합계 구하기

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

        for (int number : numbers) {
            sum += number;
        }

        System.out.println("배열 요소의 합: " + sum);
    }
}

출력 결과:

배열 요소의 합: 150  

4.2 배열 최대값 찾기

public class ArrayMax {
    public static void main(String[] args) {
        int[] numbers = {10, 50, 20, 70, 30};
        int max = numbers[0];

        for (int number : numbers) {
            if (number > max) {
                max = number;
            }
        }

        System.out.println("배열의 최대값: " + max);
    }
}

출력 결과:

배열의 최대값: 70  

4.3 2차원 배열

Java에서는 2차원 배열을 사용하여 행과 열로 데이터를 저장할 수 있습니다.

public class TwoDimensionalArray {
    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();
        }
    }
}

출력 결과:

1 2 3  
4 5 6  
7 8 9  

5. 배열 관련 유용한 메서드

Java의 Arrays 클래스는 배열을 조작하는 데 유용한 메서드를 제공합니다.

5.1 배열 정렬

import java.util.Arrays;

public class ArraySort {
    public static void main(String[] args) {
        int[] numbers = {40, 10, 30, 20, 50};
        
        Arrays.sort(numbers);
        System.out.println("정렬된 배열: " + Arrays.toString(numbers));
    }
}

출력 결과:

정렬된 배열: [10, 20, 30, 40, 50]  

5.2 배열 검색

import java.util.Arrays;

public class ArraySearch {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
        
        int index = Arrays.binarySearch(numbers, 30);
        System.out.println("30의 인덱스: " + index);
    }
}

출력 결과:

30의 인덱스: 2  

6. 배열 사용 시 주의사항

  • 고정된 크기: 배열은 생성 후 크기를 변경할 수 없습니다. 동적으로 크기를 변경해야 한다면 ArrayList를 사용하는 것이 좋습니다.
  • 인덱스 범위: 배열 인덱스는 0부터 시작하며, 유효 범위를 벗어나면 ArrayIndexOutOfBoundsException이 발생합니다.

결론

Java의 배열은 데이터 관리를 효율적으로 할 수 있는 기본적인 자료 구조입니다. 배열을 활용하면 반복 작업이나 대량의 데이터 처리를 쉽게 구현할 수 있습니다. 이번 글에서 소개한 개념과 예제를 바탕으로 배열을 적극적으로 활용해 보세요!

댓글 쓰기