Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

우리의 IT

JAVA - 배열 본문

정보처리기사

JAVA - 배열

우리의 IT 2025. 3. 27. 13:12

Java - 배열 (Array)

배열이란?
Java에서 배열은 같은 자료형의 여러 개의 값을 저장하는 자료구조입니다.
고정된 크기를 가지며, 한 번 생성하면 크기를 변경할 수 없습니다.
인덱스를 이용하여 요소에 접근할 수 있습니다.
0부터 시작하는 인덱스를 가집니다.


🔹 1. 배열 선언 및 생성

📌 배열 선언 & 초기화 방법

// 정수형 배열 선언 (크기만 지정, 기본값 0)
int[] arr1 = new int[5];

// 정수형 배열 선언과 초기화
int[] arr2 = {10, 20, 30, 40, 50};

// 배열 요소 변경
arr1[0] = 100;  // 첫 번째 요소 변경

배열의 기본값

자료형 기본값

int 0
double 0.0
boolean false
char \u0000 (null 문자)
String (객체) null

🔹 2. 배열 요소 접근

📌 배열 요소는 arr[index] 형태로 접근

public class Main {
    public static void main(String[] args) {
        int[] arr = {10, 20, 30, 40, 50};
        
        System.out.println("첫 번째 요소: " + arr[0]);  // 10
        System.out.println("세 번째 요소: " + arr[2]);  // 30

        arr[1] = 100; // 두 번째 요소 변경
        System.out.println("변경 후 두 번째 요소: " + arr[1]); // 100
    }
}

출력

첫 번째 요소: 10  
세 번째 요소: 30  
변경 후 두 번째 요소: 100  

주의!

System.out.println(arr[5]); // 배열의 크기가 5인데, 인덱스 5는 존재하지 않음!

🚨 ArrayIndexOutOfBoundsException 발생


🔹 3. 배열 순회 (for, foreach)

📌 배열의 모든 요소를 출력하는 방법

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

        // (1) 일반 for문
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();

        // (2) 향상된 for문 (foreach)
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

출력

10 20 30 40 50  
10 20 30 40 50  

🔹 4. 다차원 배열 (2차원 배열)

📌 행과 열로 이루어진 배열

public class Main {
    public static void main(String[] args) {
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6},
            {7, 8, 9}
        };

        System.out.println("matrix[0][1]: " + matrix[0][1]);  // 2

        // 2차원 배열 출력 (중첩 for문)
        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();
        }
    }
}

출력

matrix[0][1]: 2  
1 2 3  
4 5 6  
7 8 9  

📌 가변 길이 배열 (각 행의 길이가 다를 수 있음)

int[][] jagged = new int[3][];
jagged[0] = new int[2];  // 첫 번째 행 (2칸)
jagged[1] = new int[4];  // 두 번째 행 (4칸)
jagged[2] = new int[3];  // 세 번째 행 (3칸)

🔹 5. 배열과 메소드

📌 배열을 메소드의 인자로 전달 가능

public class Main {
    public static void printArray(int[] arr) {
        for (int num : arr) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

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

출력

10 20 30 40 50  

📌 메소드에서 배열을 반환 가능

public class Main {
    public static int[] createArray() {
        return new int[]{1, 2, 3, 4, 5};
    }

    public static void main(String[] args) {
        int[] arr = createArray();
        for (int num : arr) {
            System.out.print(num + " ");
        }
    }
}

출력

1 2 3 4 5  

🔹 6. 배열 정렬 (Arrays.sort())

📌 오름차순 정렬

import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 7};

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

        System.out.println(Arrays.toString(arr));
    }
}

출력

[1, 2, 5, 7, 9]  

📌 내림차순 정렬 (Comparator.reverseOrder())

import java.util.Arrays;
import java.util.Collections;

public class Main {
    public static void main(String[] args) {
        Integer[] arr = {5, 2, 9, 1, 7};

        Arrays.sort(arr, Collections.reverseOrder()); // 내림차순 정렬

        System.out.println(Arrays.toString(arr));
    }
}

출력

[9, 7, 5, 2, 1]  

🚀 정리

개념 설명

배열 선언 int[] arr = new int[5];
배열 초기화 int[] arr = {10, 20, 30};
요소 접근 arr[i]
배열 길이 arr.length
배열 순회 for / foreach
2차원 배열 int[][] arr = new int[3][3];
정렬 Arrays.sort(arr)

배열을 활용하면 데이터를 효율적으로 저장하고 처리할 수 있음! 🚀

'정보처리기사' 카테고리의 다른 글

파이썬 - 기본 자료형  (0) 2025.03.27
JAVA - 클래스  (0) 2025.03.27
C언어 - 포인터  (0) 2025.03.27
C언어 - 유틸리티 함수  (0) 2025.03.27
C언어 - 표준함수  (0) 2025.03.27