순서가 있는 데이터의 모음. 중복 데이터가 가능하다
동적으로 크기가 조정되는 배열 구현 클래스
ArrayList<String> list = new ArrayList<>();데이터를 추가, 삭제, 검색, 정렬 등 다양한 작업을 수행
메서드
| add(E element) | 지정한 요소를 추가 요소는 리스트의 맨 끝에 추가 | | --- | --- | | add(int index, E element) | 지정한 인덱스에 요소를 삽입 삽입 이후에는 다른 요소들의 인덱스가 변경 | | addAll(Collection<? extends E> c) | 지정된 컬렉션의 모든 요소를 리스트 끝에 추가 | | get(int index) | 지정한 인덱스의 요소를 반환 | | set(int index, E element) | 지정한 인덱스의 요소를 다른 요소로 대체 | | remove(int index) | 지정한 인덱스의 요소를 제거 제거 이후에는 다른 요소들의 인덱스가 변경 | | size() | 요소 개수를 반환 | | indexOf(Object o) | 지정된 요소의 인덱스를 반환 해당 요소가 없으면 -1을 반환 | | lastIndexOf(Object o) | 지정된 요소의 마지막 인덱스를 반환 해당 요소가 없으면 -1을 반환 | | subList(int fromIndex, int toIndex) | 부분 리스트를 반환 fromIndex부터 toIndex-1까지의 요소를 포함 | | contains(Object o) | 지정된 객체가 리스트에 있는지 확인 있다면 true를 반환하고, 없다면 false를 반환 | | clear() | 모든 요소를 제거 크기는 0이 된다. | | isEmpty() | 비어있는지 확인 비어있다면 true를 반환하고, 아니라면 false를 반환 |
이중 연결 리스트 구현 클래스
LinkedList<String> list = new LinkedList<>();**ArrayList**와는 달리 요소의 추가 및 삭제가 상대적으로 빠르며,
요소의 인덱스를 기반으로 한 접근은 상대적으로 느리다.
메서드
| add(E element) | 맨 끝에 새로운 요소를 추가 |
|---|---|
| add(int index, E element) | 지정된 인덱스에 새로운 요소를 추가 |
| addAll(Collection<? extends E> c) | 다른 컬렉션의 모든 요소를 리스트의 맨 끝에 추가 |
| clear() | 모든 요소를 제거 |
| get(int index) | 지정된 인덱스에 있는 요소를 반환 |
| indexOf(Object o) | 지정된 객체의 첫 번째 등장 인덱스를 반환 |
| 리스트에 없으면 -1을 반환 | |
| isEmpty() | 리스트가 비어있는지 확인 |
| remove(int index) | 지정된 인덱스에 있는 요소를 제거 |
| remove(Object o) | 리스트에서 지정된 객체를 제거 |
| 객체가 리스트에 없으면 아무 변화도 일어나지 않는다. | |
| set(int index, E element) | 지정된 인덱스에 있는 요소를 새로운 요소로 대체 |
| size() | 리스트의 요소 개수를 반환 |
동적으로 크기가 조정되는 배열 구현 클래스