- List 컬렉션
: 객체를 인덱스로 관리하기 때문에 객체를 저장하면 인덱스 가 부여되고 인덱스로 객체를 검색, 삭제할 수 있는 기능을 제공한다
> 자바의 컬렉션 프레임워크에서 순서가 있는 데이터를 저장하고 관리하는 인터페이스이다
List의 특징
순서유지 : 요소가 추가된 순서를 유지한다
예) 첫 번째 요소는 인덱스 0으로 접근
중복허용 : 동일한 값(요소)을 여러 번 추가 할 수 있다
| 구현 클래스 | 설명 | 특징 |
| ArrayList | 배열 기반의 List로, 가장 많이 사용되는 List 구현 클래스. | - 빠른 읽기/쓰기: 인덱스를 통해 요소에 접근하는 속도가 빠름 - 삽입/삭제 시 성능 저하: 중간에 삽입 또는 삭제할 때 요소를 이동해야 해서 성능이 떨어질 수 있음 |
| LinkedList | 연결 리스트 기반의 List로, 요소들이 노드로 연결되어 있는 구조. | - 삽입/삭제에 유리: 리스트 중간에서 요소를 추가하거나 삭제할 때 성능이 좋음 - 읽기 속도 느림: 인덱스로 접근 시 순차적으로 탐색해야 해서 ArrayList보다 느림 |
| Vector | ArrayList와 비슷한 구조지만, 동기화가 적용된 스레드 안전한 List. | - 동기화 지원: 여러 스레드가 동시에 접근해도 안전하지만, 성능이 떨어질 수 있음 - ArrayList보다 덜 사용됨 (성능 이유로) |
| Stack | Vector를 상속받아 만든 클래스로, LIFO(Last In First Out) 방식으로 요소를 관리하는 구조. | - 후입선출: push()로 요소를 추가하고, pop()으로 가장 마지막에 추가된 요소를 제거함 - Legacy 클래스로, 최근에는 ArrayDeque나 LinkedList로 스택을 구현하는 것이 권장됨 |
| 기능 | 메서드 | 설명 |
| 객체 추가 | boolean add(E element) | List의 맨 끝에 요소를 추가 |
| void add(int index, E element) | 특정 인덱스에 요소를 삽입 | |
| set(int index, E element) | 특정 인덱스의 요소를 새로운 값으로 변경 | |
| 객체 검색 | boolean contains(Object o) | 특정 요소가 List에 포함되어 있는지 여부를 확인 |
| E get(int index) | 인덱스를 사용해 해당 위치의 요소를 가져옴 | |
| int size() | List의 **크기(요소의 개수)**를 반환 | |
| isEmpty() | List가 비어 있는지 여부를 확인 | |
| 객체 삭제 | E remove(int index) | 특정 인덱스에 있는 요소를 제거 |
| void clear() | List의 모든 요소를 제거 | |
| boolean remove (Object o) | 주어진 객체를 삭제 | |
| indexOf (Object o) | 특정 요소가 처음으로 등장하는 인덱스를 반환해요. 없으면 -1을 반환해요. |
'Java' 카테고리의 다른 글
| Java_컬렉션 자료구조_Vector (0) | 2024.10.17 |
|---|---|
| Java_컬렉션 자료구조_ArrayList,LinkedList (0) | 2024.10.17 |
| Java_컬렉션 자료구조_컬렉션 프레임워크 (0) | 2024.10.17 |
| Java_스레드풀(threadPool), 스레드풀의 종료 (0) | 2024.10.17 |
| Java_데몬 스레드 (2) | 2024.10.17 |