1. 컬렉션 인터페이스
컬렉션 프레임워크에는 List, Set, Map 3개의 컬렉션 타입을 가지고 있다. 자바는 각각의 타입에 대한 인터페이스를 가지고 있으며, List 와 Set 타입의 공통점을 모아 상위의 Collection 인터페이스를 추가로 정의하였다.
인터페이스 | 특징 |
List | 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. - ArrayList, LinkedList, Stack, Vector 등 |
Set | 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. - HashSet, TreeSet 등 |
Map | key, value 의 형식으로 데이터 쌍을 저장하는 데이터 집합. 순서는 유지하지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. - HashMap, TreeMap, Hashtable, Properties 등 |
2. Collection 인터페이스
List 와 Set 의 조상인터페이스인 Collection 인터페이스에는 다음의 메서드들이 정의되어 있다.
메서드 | 설명 |
boolean add(Object o) boolean addAll(Collection c) |
지정된 객체 (Object o), 또는 컬렉션 (Collection c) 의 객체들을 Collection 에 추가한다. |
void clear() | Collection 의 모든 객체를 삭제한다. |
boolean contains(Object o) boolean containsAll(Collection c) |
지정된 객체, 또는 컬렉션의 모든 객체가 현재 컬렉션에 모두 포함되어 있는지 확인한다. |
boolean equals(Object o) | 동일한 컬렉션인지 확인한다. |
int hashCode() | 컬렉션의 hash code 를 확인한다. |
boolean isEmpty() | 컬렉션이 비어있는지 확인한다. |
Iterator iterator() | 컬렉션의 iterator 를 반환한다. |
boolean remove(Object o) | 현재 컬랙션에서 지정된 객체 o를 삭제한다. |
boolean removeAll(Collection c) | 컬렉션 c에 포함되어 있는 모든 객체를 현재 컬렉션에서 삭제한다. |
boolean retainAll(Collection c) | 지정된 Collection 에 포함된 객체만을 남기고 다른 객체들은 Collection 에서 삭제한다. 이 작업으로 Collection 에 변화가 있는지의 여부 true/false 를 결과로 반환한다. |
int size() | 컬렉션에 저장되어 있는 객체의 개수를 반환한다. |
Object[] toArray() | 컬렉션에 저장된 객체를 객체배열로 반환한다. |
Object[] toArray(Object[] a) | 지정된 배열 a 에 컬렉션의 객체를 저장해서 반환한다. |
3. List 인터페이스
List 인터페이스는 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다. 컬렉션에서 상속받은 메서드외에 List 인터페이스에서 정의되어 있는 메서드는 다음과 같다.
메서드 | 설명 |
void add(int index, Obejct element) boolean addAll(int index, Collection c) |
지정된 위치 index 에 객체 element, 또는 컬렉션 c 의 객체들을 추가한다. |
Object get(int index) | 지정된 위치, index 에 있는 객체를 반환한다. |
int indexOf(Object o) | 지정된 객체의 첫번째 위치를 반환한다. |
int lastIndexOf(Obejct o) | 지정된 객체의 마지막 위치를 반환한다. |
ListIterator listIterator() ListIterator listIterator(int index) |
List 의 객체에 접근할 수 있는 ListIterator 를 반환한다. |
Object remove(int index) | 지정된 위치, index 의 객체를 컬렉션에서 삭제하고, 삭제된 객체를 반환한다. |
Object set(int index, Object element) | 지정된 위치, index 에 객체를 저장한다. |
void sort(Comparator c) | 지정된 비교자, comparator 로 List 를 정렬한다. |
List subList(int fromIndex, int toIndex) | 지정된 범위, fromIndex ~ toIndex 에 있는 객체를 반환한다. |
4. Set 인터페이스
Set 인터페이스는 중복을 허용하지 않고, 저장순서를 유지하지 않는 컬렉션 클래스를 구현하는데 사용된다.
5. Map 인터페이스
Map 인터페이스는 key, value 를 쌍으로 묶어서 데이터를 저장하는 컬렉션 클래스를 구현하는데 사용된다. key 는 중복될 수 없지만 value 는 중복을 허용한다.
메서드 | 설명 |
void clear() | Map 의 모든 객체를 삭제한다. |
boolean containsKey(Obejct key) | 지정된 key 객체가 Map 의 key 로 저장되어 있는지 확인한다. |
boolean containsValue(Object value) | 지정된 value 객체가 Map 의 value 로 저장되어 있는지 확인한다. |
Set entrySet() | Map 에 저장되어 있는 key-value 쌍을 Map.Entry 타입의 객체로 저장한 Set으로 반환한다. |
boolean equals(Object o) | 동일한 Map 인지 확인한다. |
Object get(Obejct key) | 해당 key 와 쌍으로 묶여서 저장되어 있는 value 를 반환한다. |
int hashCode() | Map 의 hash code 를 반환한다. |
boolean isEmpty() | Map 이 비어있는지 확인한다. |
Set keySet() | Map 에 저장된 모든 key 객체를 반환한다. |
Object put(Object key, Object value) | 입력된 key-value 데이터 쌍을 Map 에 저장한다. |
void putAll(Map t) | 지정된 Map 의 모든 key-value 쌍을 추가한다. |
Object remove(Obejct key) | 해당 key 를 가진 key-value 쌍을 삭제하고, 삭제된 value 를 반환한다. |
int size() | Map 에 저장된 key-value 쌍의 개수를 반환한다. |
Collection values() | Map 에 저장된 모든 value 를 컬렉션 타입으로 반환한다. |
Map 에서 key 는 중복을 허용하지 않기 때문에 keySet() 은 Set 타입으로 반환되고, value 는 중복을 허용하기 때문에 Collection 타입으로 반환된다.
- Map.Entry 인터페이스
Map.Entry 인터페이스는 Map 인터페이스의 내부 인터페이스이다. 내부 클래스와 같이 인터페이스도 인터페이스 안에 인터페이스를 정의하는 내부 인터페이스를 정의하는 것이 가능하다.
Map 에서는 key-value 쌍을 다루기 위해서 내부적으로 Entry 인터페이스를 정의해 놓았다.
public interface Map {
interface Entry {
Object getKey(); // Entry 의 key 를 반환한다.
Object getValue(); // Entry 의 value 를 반환한다.
Object setValue(Object value); // Entry 의 value 를 지정한다.
boolean equals(Object o); // 동일한 Entry 인지 비교한다.
int hashCode(); // Entry 의 hashCode 를 반환한다
...
}
...
}
'프로그래밍언어 > JAVA' 카테고리의 다른 글
[JAVA] Stack, Queue (0) | 2022.01.24 |
---|---|
[JAVA] List - ArrayList, LinkedList (0) | 2022.01.22 |
[JAVA] Format 클래스 (0) | 2022.01.12 |
[JAVA] Calendar & Date (0) | 2022.01.05 |
[JAVA] try-with-resources statement (0) | 2021.12.30 |