해당 글에서는 자바의 4가지 자료구조 인터페이스, Collection 인터페이스에 대한 내용만 담고 있습니다.
java에서 데이터를 담는 자료구조는 크게 4가지이다.
이 중 List, Set, Queue 자료구조는 모두 Collection(java.util에 존재)이라고 하는 인터페이스를 구현하고 있다. 이 중에 Map만 Collection와 관련없이 별도의 인터페이스로 선언되어 있다.
자바 Collection의 hierarchy는 다음과 같다.
Collection은 Iterable을 구현하고 있고, List, Queue, Set은 Collection을 구현하고 있다. Iterable 내부에는 다음과 같은 메소드가 선언되어 있다.
리턴 타입 | 메소드 이름 및 매개 변수 |
---|---|
Iterator<T> | iterator() |
참고로 Iterator 인터페이스 안에는 다음 데이터가 있는지 확인하는 hasNext(), 현재 위치를 다음 요소로 넘기고 그 값을 리턴하는 next(), 데이터를 삭제하는 remove() 메소드가 존재한다.
Iterator Java API 문서
즉 Collection을 구현한 List, Set, Queue는 Iterator 인터페이스를 통해서 값을 순차적으로 가져올 수 있다는 말이 된다.
아래는 Collection 인터페이스 내부에 있는 메소드 목록이다.
리턴 타입 | 메소드 이름 및 매개 변수 | 설명 |
---|---|---|
boolean | add(E e) | 요소를 추가한다. |
boolean | addAll(Collection) | 매개 변수로 넘어온 컬렉션의 모든 요소를 추가한다. |
void | clear() | 컬렉션에 있는 모든 요소 데이터를 지운다. |
boolean | contains(Object) | 매개 변수로 넘어온 객체가 해당 컬렉션에 있는지 확인한다. 동일한 값이 있다면 true를 리턴한다. |
boolean | containsAll(Collection) | 매개 변수로 넘어온 객체들이 해당 컬렉션에 있는지 확인한다. 매개 변수로 넘어온 컬렉션에 있는 요소들과 동일한 값들이 모두 있다면 true를 리턴한다. |
boolean | equals(Object) | 매개 변수로 넘어온 객체와 같은 객체인지 확인한다. |
int | hashCode() | 해시 코드 값을 리턴한다. |
boolean | isEmpty() | 컬렉션이 비어있는지 확인한다. 비어 있다면 true를 리턴한다. |
Iterator | iterator() | Iterator 객체를 반환한다. |
boolean | remove(Object) | 매개변수와 동일한 객체를 삭제한다. |
boolean | removeAll(Collection) | 매개변수로 넘어온 객체들을 해당 컬렉션에서 삭제한다. |
boolean | retainAll(Collection) | 매개변수로 넘어온 객체들만 해당 컬렉션에 남겨둔다. |
int | size() | 요소의 개수를 리턴한다. |
Object[] | toArray() | 컬렉션에 있는 데이터들을 배열에 복사해 리턴한다. |
<T> T[] | toArray(T[]) | 컬렉션에 있는 데이터들을 지정한 타입의 배열로 복사한다. |