해당 글에서는 자바의 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[]) | 컬렉션에 있는 데이터들을 지정한 타입의 배열로 복사한다. |