본문 바로가기
Programming

JAVA 배열과 컬렉션 기초

by 나무수피아는 지식의 가지를 뻗어가는 공간입니다. 2025. 11. 13.
반응형

📘 배열과 컬렉션 기초

자바에서 데이터를 여러 개 저장하려면 배열과 컬렉션을 사용합니다. 이번 강의에서는 1차원 배열, 2차원 배열, ArrayList 사용법을 학습합니다. 배열은 고정된 크기의 연속적인 데이터 저장 구조이고, 컬렉션은 동적으로 크기를 조절하며 다양한 자료 구조를 제공합니다. 배열과 컬렉션은 자바에서 데이터를 효과적으로 처리하기 위해 필수적으로 알아야 할 주제입니다.


📌 목차

  1. 배열이란?
  2. 1차원 배열 선언과 사용
  3. 2차원 배열 (다차원 배열)
  4. 컬렉션 프레임워크 소개
  5. ArrayList 기본 사용법

🔹 1. 배열이란?

배열은 같은 자료형의 데이터 묶음을 하나의 변수에 저장할 수 있는 구조입니다. int[] arr = new int[5];와 같이 선언하며, 배열의 인덱스는 0부터 시작합니다. 배열을 사용하면 반복문을 통해 데이터 집합을 순차적으로 처리할 수 있어 코드의 효율성이 증가합니다.

예를 들어, 학생들의 점수를 저장할 때 각각의 점수를 개별 변수로 저장하는 대신 배열로 저장하면 처리와 유지보수가 훨씬 간편해집니다. 배열은 크기가 고정되어 있다는 단점이 있지만, 그만큼 메모리 구조가 단순하여 빠른 접근이 가능합니다.


🔹 2. 1차원 배열 선언과 사용

1차원 배열은 일렬로 나열된 데이터 저장 공간입니다. 선언과 동시에 초기화하거나, 선언 후 값을 넣을 수 있습니다.

// 배열 선언과 초기화
int[] numbers = {10, 20, 30, 40};

System.out.println(numbers[0]); // 10
numbers[2] = 99;                // 30 -> 99
System.out.println(numbers.length); // 배열 길이

배열 순회 예제 (for문 사용):

for (int i = 0; i < numbers.length; i++) {
    System.out.println("Index " + i + ": " + numbers[i]);
}

배열은 초기 선언된 크기만큼만 데이터를 저장할 수 있으며, 추가나 삭제는 직접 구현해야 합니다. 이로 인해 컬렉션의 필요성이 발생합니다.


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

2차원 배열은 배열의 배열입니다. 표 형태의 데이터를 저장할 때 적합합니다. 행(Row)과 열(Column) 개념으로 접근할 수 있습니다.

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6}
};

System.out.println(matrix[1][2]); // 6

이중 for문으로 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차원 배열은 주로 게임 맵, 좌석 배치, 성적표 등에서 사용됩니다. 만약 열의 개수가 다를 수 있다면 가변 배열(Jagged Array)도 사용할 수 있습니다.


🔹 4. 컬렉션 프레임워크 소개

컬렉션(Collection)은 배열보다 유연한 데이터 저장/관리 도구입니다. 컬렉션은 자바에서 데이터를 보다 동적으로 처리할 수 있게 해주는 핵심 라이브러리입니다.

  • 크기가 자동으로 늘어남
  • 삽입/삭제가 쉬움
  • 다양한 자료구조 지원 (List, Set, Map 등)

컬렉션 프레임워크는 인터페이스와 구현체를 포함합니다. 대표적으로 List는 순서가 있는 데이터 저장, Set은 중복 없는 데이터 저장, Map은 키-값 쌍의 저장을 담당합니다.


🔹 5. ArrayList 기본 사용법

java.util.ArrayList는 가장 많이 사용하는 리스트 컬렉션입니다. 배열과 달리 크기를 유동적으로 조절할 수 있고, 다양한 메서드를 제공합니다.

import java.util.ArrayList;

ArrayList<String> fruits = new ArrayList<>();

fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");

System.out.println(fruits.get(1));     // Banana
fruits.set(2, "Grapes");               // Cherry -> Grapes
fruits.remove("Apple");                // 요소 제거
System.out.println(fruits.size());     // 크기 확인

for-each 문으로 출력하기:

for (String fruit : fruits) {
    System.out.println(fruit);
}

ArrayList는 내부적으로 배열을 사용하지만, 자동으로 크기를 조절하기 때문에 대규모 데이터 처리에 유리합니다. 정렬, 검색, 중복 처리 등의 기능도 활용할 수 있습니다. 단, 삽입/삭제가 빈번한 경우는 LinkedList가 더 적합할 수 있습니다.


요약: 배열은 고정 크기의 데이터 저장에 적합하며, 컬렉션은 유동적인 데이터 관리에 적합합니다. 자바를 제대로 활용하기 위해서는 배열과 컬렉션 둘 다 능숙하게 다루는 것이 중요합니다. 이번 강의에서 배운 개념은 이후 객체지향 프로그래밍과 자료구조 학습의 기초가 됩니다.

반응형

'Programming' 카테고리의 다른 글

JAVA 클래스와 객체  (45) 2025.11.15
JAVA 메서드와 매개변수  (43) 2025.11.14
JAVA 조건문과 반복문  (74) 2025.11.12
JAVA 기본 문법과 데이터 타입  (58) 2025.11.11
JAVA 소개 및 개발 환경 구축  (58) 2025.11.10