내코가석자

02. 배열

gani00 2026. 3. 7. 23:59

배열과 리스트

1️⃣ 배열 (Array)

  • 크기가 고정된 연속된 메모리 공간에 데이터를 저장
  • 1차원 배열, 2차원 배열로 나뉨
  • 빠른 인덱스 접근이 가능하지만 크기 변경 불가
// 1차원 배열
int[]arr1= {1,2,3,4,5};
System.out.println(arr1[0]);// 1

// 값 변경
arr1[2]=10;// arr1 = {1, 2, 10, 4, 5}

// 2차원 배열
int[][]arr2= {
    {1,2,3},
    {4,5,6},
    {7,8,9}
};
System.out.println(arr2[1][2]);// 6

// 배열 길이
System.out.println(arr1.length);// 5
System.out.println(arr2.length);// 3 (행)
System.out.println(arr2[0].length);// 3 (열)

2️⃣ 리스트 (ArrayList)

  • 크기가 가변적인 배열 형태의 자료구조
  • 배열보다 편리하게 요소 추가, 삭제 가능
  • ArrayList는 List 인터페이스를 구현
importjava.util.ArrayList;
importjava.util.List;

// ArrayList 초기화
List<String>list=newArrayList<>();

// 값 추가
list.add("apple");
list.add("banana");
list.add("cherry");

// 값 조회
System.out.println(list.get(0));// apple

// 값 수정
list.set(1,"blueberry");// banana -> blueberry

// 값 삭제
list.remove(2);// cherry 삭제

// 리스트 크기
System.out.println(list.size());// 2

// 반복문
for (Strings :list) {
System.out.println(s);
}

// 람다식 forEach
list.forEach(s ->System.out.println(s));

✅ 정리

구분 배열(Array) 리스트(ArrayList)

크기 고정 가변
요소 추가/삭제 불편 편리 (add, remove)
장점 메모리 효율, 빠른 인덱스 접근 동적 크기, 다양한 메서드
단점 크기 변경 불가 인덱스 접근은 배열보다 약간 느림