
같은 타입의 요소를 연속적으로 저장하는 자료구조로, 크기가 고정되어 있으며 빠른 인덱스 접근이 가능하다.
int[] arr1 = new int[5]; //크기가 5인 배열 생성
int[] arr2 = new int[] {1, 2, 3}; // 초기값을 설정한 배열 생성
int[] arr3 = {1, 2, 3, 4, 5}; // 배열을 직접 초기화
고정 크기: 생성 시 크기를 지정, 변경 불가.
동일한 타입: 하나의 배열에는 같은 타입만 저장.
삽입/삭제 비효율적: 중간에 삽입/삭제 시 성능 저하.
연속된 메모리 공간: 빠른 접근이 가능.
초기화: 배열은 선언 시 초기화되지 않으면 기본값으로 초기화.
(숫자배열은 0, 객체 배열은 null로 초기화)
순차적으로 데이터를 저장하고 중복을 허용하며 자료구조를 정의하는 인터페이스이다.
ArrayList, LinkedList 등의 다양한 구현체를 가진다.
List<Integer> list = new ArrayList<Integer>();
list = new LinkedList<Integer>();
유연성: List 인터페이스로 선언하면, 구현체 변경 가능.
다형성: ArrayList와 LinkedList등 다양한 자료구조 사용 가능.
java.util.List 인터페이스를 구현한 클래스로, 가변 크기 배열을 기반으로 하여 크기 조정이 가능하며, 배열보다 사용하기 편리한 자료구조이다.
ArrayList<Integer> arrayList1 = new ArrayList<Integer>();
List<Integer> arrayList2 = new ArrayList<Integer>();
클래스: ArrayList는 List 인터페이스를 구현한 구체적인 클래스이다.
가변 크기: 필요에 따라 자동으로 크기가 조정된다.
중복 허용: 동일한 값을 여러 번 저장 가능하다.
순차적 저장: 저장된 요소의 순서가 유지된다.
| 메서드 | 설명 |
|---|---|
| add(E e) | 요소 추가 |
| get(int index) | 특정 인덱스의 요소 가져오기 |
| remove(int index) | 특정 인덱스의 요소 삭제 |
| size() | 리스트 크기 확인 |
| clear() | 모든 요소 삭제 |
| contains(E e) | 특정 요소 포함 여부 확인 |