컬렉션
- 여러 원소를 하나의 그룹으로 묶어 관리해주는 객체
JCF(Java Collections Framework)
- 컬렉션을 표현하고 다루기 위한 통합된 프레임워크
- 클래스와 인터페이스의 집합
- 다양한 방식으로 저장, 정렬, 검색, 수정하는 도구를 제공
- 컬렉션을 일관된 방법으로 다룰 수 있음
- 표준화된 인터페이스 : 컬렉션의 기능을 표현(어떻게 표현되는 지와 상관없이 일관성 있게 다룸)
- 클래스 : 인터페이스를 구현한 클래스를 제공
JCF의 인터페이스
- Set : 순서는 의미가 없으며 중복을 허용하지 않는 자료구조
- List : 중복을 허용하고 순서에 의미가 있는 자료구조
- Queue : List와 유사하나 원소의 삽입/삭제가 FIFO 방식
- Map : 원소가 <key, value>의 형태이며 키는 유일해야 함
JCF의 인터페이스와 클래스
- java.util 패키지에 포함되며 제네릭 타입
- 다루는 자료의 유형을 지정해야 함
Set | List | Queue | Map | |
해싱 | HashSet | HashMap | ||
배열 | ArrayList Vector(Stack) |
|||
연결리스트 | LinkedList | LinkedList | ||
해싱 + 연결리트스 |
LinkedHashSet | LinkedHashMap | ||
SortedSet | SortedMap | |||
트리 | TreeSet | TreeMap |
컬렉션 객체의 선언
- 변수 선언은 해당 인터페이스 유형으로, 객체 생성은 인터페이스를 구현하는 클래스를 사용
Set<Integer> set = new HashSet< >( );
List<Integer> list = new ArrayList< >( );
List<Integer> list = new LinkedList< >( );
Queue<Integer> queue = new LinkedList< >( );
Map<String, Integer> map = new HashMap< >( );
Collection<E> 인터페이스
- Set, List, Queue에 공통으로 지원해야 하는 기능을 정의
메소드 | 설명 |
boolean add(E e) | 주어진 객체를 저장. 객체가 성공적으로 저장되면 true를 리턴하고 중복 객체면 false를 리턴 |
boolean addAll(Collection<? extends E> c) | 컬렉션 c에 있는 모든 요소들 맨 뒤에 추가 |
boolean remove(Object o) | 현재 컬렉션에서 객체 o를 삭제 |
boolean removeAll(Collection<?> c) | 해당 컬렉션에서 컬렉션 c와 일치하는 모든 요소를 제거, 성공하면 true, 실패하면 false 리턴 |
boolean retainAll(Collection<?> c) | 컬렉션 c와 일치하는 데이터만 남기고 나머지는 삭제 |
void clear( ) | 저장된 모든 객체를 삭제 |
boolean contains(Object o) | 컬렉션이 해당 요소를 가지고 있다면 true, 아니라면 false를 리턴 |
boolean containsAll(Collection<?> c) | 컬렉션 c의 모든 요소를 가지고 있다면 true, 아니라면 false를 리턴 |
boolean isEmpty( ) | 컬렉션이 비어 있는지 조사 |
int size( ) | 저장되어 있는 전체 객체 수를 리턴 |
int hashCode( ) | hashing 알고리즘에 의해 만들어진 Integer 값을 리턴 똑같은 Object는 반드시 똑같은 hashCode를 리턴해야 하지만 반대는 필수적이지 않음. equals와 같이 사용. |
Object[ ] toArray( ) | 현재 컬렉션에 저장된 데이터를 Object 배열로 반환. |
Iterator<E> iterator( ) | 저장된 객체를 한 번씩 가져오는 반복자를 리턴 |
boolean equals(Object) | 동일한(논리적으로 동일) 값인지 비교, 같다면 true, 다르다면 false. 오버라이딩하여 사용, hashCode와 같이 사용, equals가 참이면 hashCode도 같아야 함 |
'기록하는 중 > JAVA' 카테고리의 다른 글
[Java] List 컬렉션 (0) | 2024.01.12 |
---|---|
[Java] Set 컬렉션 - JCF (0) | 2024.01.11 |
[Java] WatchService 인터페이스 - java.nio (0) | 2024.01.09 |
[Java] FileChannel 클래스 - java.nio (0) | 2024.01.09 |
[Java] 버퍼 - java.nio (0) | 2024.01.03 |