배열과 리스트
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) |
| 장점 |
메모리 효율, 빠른 인덱스 접근 |
동적 크기, 다양한 메서드 |
| 단점 |
크기 변경 불가 |
인덱스 접근은 배열보다 약간 느림 |