[java]Collection Framework(1)

송어·2023년 11월 16일

Collection Framework

컬렉션 프레임워크(Collection Framework)는 자바에서 제공하는 데이터 구조인 컬렉션(Collection)을 표현하는 인터페이스와 클래스의 모음이다.
컬렉션(Collection)은 다수의 데이터 즉, 데이터 그룹을, 프레임워크(Framework)는 표준화된 프로그래밍 방식을 뜻한다.

핵심 인터페이스

컬렉션 프레임워크에선 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식해 컬렉션을 다루는 데 필요한 기능을 가진 3개의 인터페이스(List, Set, Map)를 정의하였다. 그리고 List, Set의 공통된 부분을 다시 뽑아 새로운 인터페이스인 Collection을 추가로 정의하였다.

Map의 경우 이들과는 전혀 다른 형태로 컬렉션을 다루기 때문에 같은 상속계층도에 포함되지 못했다.

List : 순서가 있는 데이터의 집합. 데이터의 중복 허용
ArrayList, LinkedList, Stack, Vector 등

Set : 순서를 유지하지 않는 데이터의 집합. 데이터의 중복 허용 X
HashSet, TreeSet 등

Map : 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합
순서는 유지되지 않으며, 키는 중복을 허용하지 않고 값은 중복을 허용
HashMap, TreeMap, Hashtable, Propertie 등

컬렉션 인터페이스

컬렉션 인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고 추가하고 삭제하는 등 컬렉션을 다루는데 기본적인 메서드들을 정의하고 있다.

메서드설명
boolean add(Object O), boolean addAll(Collection C)지정된 객체(O)또는 컬렉션(C)의 객체들을 컬렉션에 추가
void clear()컬렉션의 모든 객체를 삭제
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)지정된 객체를 삭제
boolean remove(Collection C)지정된 컬렉션에 포함된 모든 객체를 삭제
boolean removeAll(Collection C)지정된 컬렉션에 포함된 객체만을 남기고 다른 객체들은 컬렉션에서 삭제한다. 이 작업으로 인해 컬렉션에 변화가 있으면 true, 없으면 false를 반환한다.
int size()컬렉션에 저장된 객체의 개수를 반환한다.
Object[] toArray()컬렉션에 저장된 객체를 객체배열로 반환
Object[] toArray(Object[] a)지정된 배열에 컬렉션의 객체를 저장해서 반환

List 인터페이스

List인터페이스는 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용한다.

메서드설명
boolean add(int index, Object element), boolean addAll(int index,, Collection C)지정된 위치(index)에 객체(element)또는 컬렉션(C)의 객체들을 컬렉션에 추가
Object get(int index)지정된 위치(index)에 있는 객체를 반환
int indexOf(Object O)지정된 객체의 위치(index)를 반환(List의 첫번째 요소부터 순방향으로 찾는다.)
int lastIndexOf(Object O)지정된 객체의 위치(index)를 반환(List의 마지막 요소부터 역방향으로 찾는다.)
ListIterator lastIterator(), ListIterator lastIterator(int index)List객체에 접근할 수 있는 ListIterator를 반환
Object remove(int index)지정된 위치에 있는 객체를 삭제하고 삭제된 객체를 반환한다.
Object set(int index, Object element)지정된 위치에 객체를 저장
void sort(Compartor c)지정된 비교자(compartor)로 List를 정렬한다.
List subList(int fromIndex, int toIndex)지정된 범위fromIndex~toIndex)에 있는 객체를 반환한다.

Map 인터페이스

Map인터페이스는 key와 value를 하나의 쌍으로 묶어 저장하는 컬렉션 클래스를 구현하는데 사용된다. 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남는다.

메서드설명
void clear()Map의 모든 객체를 삭제
boolean containsKey(Object key)지정된 key객체와 일치하는 map의 key객체가 있는지 확인한다.
boolean containsValue(Object key)지정된 Value객체와 일치하는 map의 Value객체가 있는지 확인한다.
Set entrySet()Map에 저장되어 있는 key-value쌍을 Map.entry타입의 객체로 저장한 set으로 반환한다.
boolean equals(Object O)동일한 Map인지 비교
Object get(int key)지정된 key객체에 대응하는 value객체를 반환
int HashCode()Hash Code를 반환
boolean isEmpty()Map이 비어있는지 확인
Object keySet()Map에 저장된 모든 key객체를 반환
Object put(Object key, Object value)Map에 value객체를 key객체에 연결(mapping)하여 저장
void putAll(Map t)지정된 Map의 모든 key-value쌍을 추가
Object remove(Object key)지정된 key객체와 일치하는 key-value객체를 삭제
int size()Map에 저장된 key-value쌍의 개수를 반환
Collection values()Map에 저장된 모든 value객체를 반환

0개의 댓글