자바 배열의 모든 것: 코드로 배우는 핵심 개념

2025. 7. 23. 08:52·Back-End/Java

🧠 [Java 기초] 배열(Array)의 모든 것: 선언부터 정렬, 삭제, ArrayList까지

자바에서 배열은 여러 데이터를 효율적으로 관리하기 위한 핵심 도구
이 글에서는 정적 배열의 개념부터 다차원 배열, Arrays 클래스 활용법, 그리고 ArrayList(동적 배열)와의 차이점까지 정리


1️⃣ 배열이란? (정적 배열의 개념)

✔️ 정의

같은 타입의 데이터를 하나로 묶어 저장하는 공간

// >> new 데이터타입[배열의 길이];
int[] scores = new int[3]; // 요소의 개수가 3개인 배열을 생성
  • int[]: 정수형 배열을 선언
  • new int[3]: 길이 3의 배열 생성
  • 모든 요소는 해당 타입의 기본값으로 초기화됨 (int → 0, String → null)

✔️ 주요 특징

  • 인덱스: 0부터 시작
  • 중복 허용
  • 크기 고정 (변경 불가)
  • 동일한 타입만 저장 가능

2️⃣ 배열 값 넣기 & 꺼내기

// 배열의 요소에 접근하여 데이터 변경(삽입)
scores1[0] = 80;
scores1[1] = 90;
scores1[2] = 85; // 전체 요소의 개수 - 1 == 마지막 인덱스 번호

System.out.println(scores1[0]); // 80
System.out.println(scores1[1]); // 90
System.out.println(scores1[2]); // 85
  • 배열의 특정 위치에 접근할 때는 배열명[인덱스] 형태 사용

⚠️ 주의

System.out.println(scores[3]); // ArrayIndexOutOfBoundsException
  • 배열 범위 초과 시 예외 발생

3️⃣ 배열 순회 (하나씩 출력하는 방법)

✅ 기본 for문

for (int i = 0; i < scores.length; i++) {
    System.out.println(scores[i]);
}
  • 배열의 길이만큼 반복하며 순차 출력

✅ 향상된 for문 (for-each문)

for (int score : scores) {
    System.out.println(score);
}
  • 배열의 모든 요소를 순서대로 꺼내는 방식
  • 인덱스를 직접 다룰 필요 없을 때 간결하게 사용

4️⃣ 다차원 배열 (2차원 배열)

✔️ 정의

배열 안에 또 다른 배열이 있는 구조
테이블 형태의 데이터 저장에 적합

java
복사편집
int[][] matrix = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
  • matrix[1][2]: 두 번째 행, 세 번째 열의 값 (6)

✅ 출력 예시

java
복사편집
for (int[] row : matrix) { for (int val : row) { System.out.print(val + " "); } System.out.println(); }

출력 결과:

복사편집
1 2 3 4 5 6 7 8 9

5️⃣ 배열 삭제

자바 배열은 고정된 크기를 가지므로, 특정 요소를 삭제하는 직접적인 방법은 존재하지 않음
삭제할 요소를 제외한 나머지를 새로운 배열에 복사하여 사용

✅ 삭제 예제

java
복사편집
int[] original = { 1, 2, 3, 4 }; int removeIndex = 2; int[] newArray = new int[original.length - 1]; int k = 0; for (int i = 0; i < original.length; i++) { if (i == removeIndex) continue; newArray[k++] = original[i]; }

6️⃣ Arrays 클래스 활용

자바에서 배열을 더 편리하게 다루기 위한 java.util.Arrays 클래스 제공

java
복사편집
import java.util.Arrays;

📌 주요 기능 요약

기능메서드설명
정렬 Arrays.sort(arr) 오름차순 정렬
출력 Arrays.toString(arr) 배열을 문자열로 출력
검색 Arrays.binarySearch(arr, key) 이진 탐색 (정렬 필수)
비교 Arrays.equals(arr1, arr2) 두 배열이 같은지 확인
채움 Arrays.fill(arr, value) 모든 요소를 특정 값으로 초기화
 

7️⃣ 동적 배열: ArrayList와의 차이점

✅ ArrayList란?

크기를 유동적으로 늘리거나 줄일 수 있는 배열 구조
java.util 패키지에 포함

java
복사편집
ArrayList<Integer> list = new ArrayList<>(); list.add(10); list.remove(0);

📌 정적 배열 vs 동적 배열 비교

항목 정적 배열 (Array) 동적 배열 (ArrayList)
크기 고정 유동적
타입 기본 타입 가능 참조 타입만 가능 (Integer 등)
기능 저장, 조회 추가, 삭제, 수정, 정렬 등 다양
속도 빠름 기능이 많아 상대적으로 느림
 

📝 정리

자바 배열은 자료 구조의 기본
정적 배열은 빠르고 단순하지만 기능이 제한됨
동적 배열은 크기 조절이 자유롭고 다양한 메서드를 제공
Arrays 클래스는 배열을 다루는 강력한 도구
정적/동적 배열의 특징을 잘 파악하여 상황에 맞게 선택할 필요

'Back-End > Java' 카테고리의 다른 글

Java 메서드 완벽 가이드: 개념부터 오버로딩까지  (1) 2025.07.31
객체 지향 프로그래밍(OOP) 란?  (3) 2025.07.28
if-중독자 탈출법.zip | 자바 제어문 제대로 써보자  (4) 2025.07.20
자바 입문 0→1: 개념 부수고 실력 올리기  (1) 2025.07.17
자바 처음 시작한다면 꼭 봐야 할 기초 개념 모음  (0) 2025.07.15
'Back-End/Java' 카테고리의 다른 글
  • Java 메서드 완벽 가이드: 개념부터 오버로딩까지
  • 객체 지향 프로그래밍(OOP) 란?
  • if-중독자 탈출법.zip | 자바 제어문 제대로 써보자
  • 자바 입문 0→1: 개념 부수고 실력 올리기
rpsnrpsn
rpsnrpsn
rpsnrpsn 님의 블로그 입니다.
  • rpsnrpsn
    rpsnrpsn 님의 블로그
    rpsnrpsn
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • Back-End (18)
        • Java (17)
        • DB (1)
      • Front-End (3)
        • HTML (1)
        • CSS (0)
        • JavaScript (1)
        • Etc. (1)
  • 블로그 메뉴

    • 홈
    • Github
  • hELLO· Designed By정상우.v4.10.4
rpsnrpsn
자바 배열의 모든 것: 코드로 배우는 핵심 개념
상단으로

티스토리툴바