본문 바로가기
프로그래밍/자바[JAVA]

5장. 자바의 배열과 ArrayList 기초

by 사업가 Jay 2025. 5. 4.

자바의 배열과 ArrayList 기초 완전정복

데이터를 여러 개 담고 싶을 땐? 배열과 ArrayList가 정답입니다. 하지만 차이를 모르면 큰일 나요!

안녕하세요! 자바 공부하면서 처음으로 ‘자료구조’라는 개념을 접했던 날이 아직도 기억나요. 변수로 하나하나 값을 담다가, "아니 이런 데이터들 그냥 묶어서 담을 수는 없을까?" 하는 의문이 생겼거든요. 그때 처음 만난 게 바로 배열(Array)이었고, 이어서 ArrayList라는 친구도 등장했죠. 이 둘은 닮은 듯 다르고, 각각 장단점이 뚜렷해요. 그래서 오늘은 배열과 ArrayList의 기본 개념부터, 차이점, 그리고 자주 쓰는 메서드들까지 한 번에 정리해보려고 해요. 데이터 다루기 시작하려면 반드시 알고 있어야 하는 개념이에요!

배열(Array)의 기본 개념과 선언

배열이란 같은 타입의 데이터를 연속적으로 저장할 수 있는 공간이에요. 예를 들어 학생 5명의 점수를 저장하고 싶다면, 5개의 int 변수를 각각 선언하지 않고 하나의 int 배열로 처리할 수 있죠.

// 배열 선언과 생성
int[] scores = new int[5];

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

배열의 인덱스는 0부터 시작하며, 고정된 크기를 가지기 때문에 한 번 크기를 지정하면 변경할 수 없다는 점도 꼭 기억하세요.

배열의 사용법과 반복문

사용 방식 예시
특정 인덱스 접근 scores[0] = 100;
전체 출력 (for) for (int i = 0; i < scores.length; i++)
전체 출력 (향상된 for) for (int score : scores)

배열은 for문과 짝꿍이에요. 특히 향상된 for문을 사용하면 코드를 더 간결하게 만들 수 있어요. 단, 인덱스를 활용한 제어가 필요할 땐 일반 for문이 더 유리하죠.

ArrayList란? 기본 사용법

  • 크기 제한 없이 데이터 추가 가능
  • 객체만 저장 가능 (기본형은 Wrapper 사용 필요)
  • java.util 패키지 import 필수
import java.util.ArrayList;

ArrayList list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println(list.get(0)); // Java

배열과 ArrayList의 차이점

항목 배열(Array) ArrayList
크기 변경 고정 동적
기본형 저장 가능 불가능 (Wrapper 사용)
성능 더 빠름 유연하지만 느릴 수 있음
메서드 제공 없음 (수동처리) 다양한 메서드 제공

자주 쓰는 ArrayList 메서드 정리

ArrayList fruits = new ArrayList<>();

fruits.add("Apple");         // 요소 추가
fruits.add("Banana");
fruits.get(0);               // 요소 가져오기
fruits.set(1, "Orange");     // 요소 수정
fruits.remove(0);            // 요소 삭제
fruits.contains("Banana");   // 포함 여부 확인
fruits.size();               // 크기 확인
fruits.clear();              // 전체 삭제

ArrayList는 메서드가 정말 많아요. 이 메서드들만 잘 활용해도 배열보다 훨씬 편하게 데이터를 다룰 수 있어요. 특히 add, get, remove는 필수로 외워두세요.

초보자를 위한 배열/리스트 활용 팁

  • ArrayList에는 기본형이 직접 저장되지 않으므로 Integer, Double 등의 Wrapper 클래스를 사용해야 해요.
  • 배열은 정해진 크기 안에서만 값을 넣을 수 있으니, 유동적인 데이터를 다룰 땐 ArrayList가 더 편리해요.
  • 반복문과 함께 사용하면 배열이나 리스트의 진가를 느낄 수 있어요. 실습 꼭 해보세요!
Q 배열과 ArrayList 중 어느 걸 써야 하나요?

데이터 개수가 고정이면 배열, 동적으로 추가/삭제가 많다면 ArrayList가 좋아요.

Q 배열의 크기를 나중에 변경할 수는 없나요?

자바 배열은 고정 크기라 직접 변경은 안 돼요. 새로운 배열을 만들어 복사해야 해요.

Q ArrayList에는 int를 넣을 수 없나요?

직접은 안 되고, Integer 같은 Wrapper 클래스를 써야 해요. 자바는 객체만 저장할 수 있어서요.

Q 배열에서 인덱스 범위를 벗어나면 어떻게 되나요?

ArrayIndexOutOfBoundsException이라는 오류가 발생해요. 항상 length 체크하세요!

Q ArrayList는 성능이 느린가요?

배열보다 약간 느릴 수 있지만, 대부분의 일반적인 상황에선 무시할 정도예요.

Q ArrayList의 크기는 어떻게 확인하나요?

list.size() 메서드를 사용하면 현재 요소 개수를 알 수 있어요.

배열과 ArrayList는 자바에서 데이터를 다루는 가장 기본적인 도구예요. 처음엔 단순히 값만 담는 느낌이지만, 쓰면 쓸수록 왜 이 구조들이 중요한지 절실히 느끼게 될 거예요. 저는 코딩 연습하면서 ArrayList로 친구 명단 관리하는 미니 프로젝트를 했었는데, 덕분에 자료구조에 대한 이해가 훨씬 깊어졌어요. 여러분도 오늘 배운 내용을 토대로 직접 배열과 리스트를 다뤄보세요. 혼자 실습하는 게 진짜 실력이 되는 지름길이에요 😊