JAVA 컬렉션 프레임워크

Dev.Shinny·2022년 9월 30일
0

자바의 정석

목록 보기
17/18

컬렉션 프레임워크(Collection Framework)

데이터 군을 저장하는 클래스들을 표준화한 설계
여러 데이터를 편리하게 관리할 수 있게 만들어 놓은 것

핵심 인터페이스

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

컬렉션 프레임워크의 모든 컬렉션 클래스는 List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현하고 있으며, 클래스 이름에도 구현한 인터페이스의 이름이 포함되므로 바로 구분할 수 있도록 되어있다.

Vector, Stack, Hashtable, Properites와 같은 클래스들은 컬렉션 프레임워크가 만들어지기 전부터 존재하던 것이기 때문에 컬렉션 프레임워크의 명명법을 따르지 않는다.

그러나 Vector나 Hashtable과 같은 기존 컬렉션을 사용하지 않는 것이 좋다. 대신 추가된 ArrayList와 HashMap을 사용하는 것이 성능 면에서도 더 좋다.

Collection 인터페이스

List와 Set 조상인 Collection 인터페이스의 메서드 표이다.

⭐️boolean add(E e)
boolean addAll(Collection c)

지정된 객체 또는 Collection의 객체들을 Collection에 추가한다.

⭐️void clear()

Collection의 모든 객체를 삭제한다.

⭐️boolean contains(Object o)
boolean containsAll(Collection c)

지정된 객체(o) 또는 Collection의 객체들이 Collection에 포함되어 있는지 확인한다.

int hashCode()

Collection의 hash code를 반환한다.

⭐️boolean isEmpty()

Collection이 비어있는지 확인한다.

⭐️lterator<𝘌 > lierator()

Collection의 literator를 얻어서 반환한다.

⭐️boolean remove(Object o)
boolean removeAll(Collection c)

지정된 객체/지정된 Collection에 포함된 객체들을 삭제한다.

boolean retainAll(Collection c)

지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection에서 삭제한다. 이 작업으로 인해 Collection에 변화가 있으면 true 아니면 false를 반환한다.

⭐️ int size()

Collection에 저장된 객체의 개수를 반환한다.

⭐️ Object[] toArray()
Object[] toArrau(Obejct[] a)

Collection에 저장된 객체를 객체배열(Object[])로 반환한다.
지정된 배열에 Collection의 객체를 저장해서 반환한다.

List 인터페이스


자바 API https://docs.oracle.com/javase/8/docs/api/java/util/List.html

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

void add(int index, E e)

지정된 위치(index)에 전달된 객체를 추가한다.

boolean add(E e)

해당 리스트에(list)에 전달된 객체를 추가한다.

Object get(int index)

지정된 위치(index)에 있는 개체를 반환한다.

int indexOf(Object o)

지정된 객체의 위치(index)를 반환한다.
(List의 첫 번째 요소부터 순방향으로 찾는다.)

int lastIndexOf(Object o)

지정된 객체의 위치(index)를 반환한다.
(List의 마지막 요소부터 역방향으로 찾는다.)

Listlterator <𝘌 > listlterator()
Listlterator <𝘌 > listlterator(int index)

List의 객체에 접근할 수 있는 Listlterator를 반환한다.

E remove(int index)

지정된 위치(index)에 있는 객체를 삭제하고 삭제된 객체를 반환한다.

E set(int index, E e)

지정된 위치(index)에 요소를 저장한다.

void sort(Comparator c)

지정된 비교자(comparator)로 List를 정렬한다.

List subList(int fromIndex, int toIndex)

지정된 범위(fromIndex부터 toIndex)에 있는 개체를 반환한다.

Set 인터페이스

자바 API https://docs.oracle.com/javase/8/docs/api/java/util/Set.html

Set 인터페이스는 중복을 허용하지 않고 저장 순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용된다. Set 인터페이스를 구현한 클래스로 HashSet, TreeSet 등이 있다.

Map 인터페이스

자바 API
https://docs.oracle.com/javase/8/docs/api/java/util/Map.html

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

void clear()

Map의 모든 객체를 삭제한다.

booelan containsKey(Object Key)

지정된 Key객체와 일치하는 Map의 Key객체가 있는지 확인한다.

booelan containsValue(Object value)

지정된 value객체와 일치하는 Map의 value객체가 있는지 확인한다.

Set entrySet()

Map에 저장되어 있는 key-value쌍을 Map.Entry타입의 객체로 저장한 Set으로 반환한다.

boolean equals(Object o)

동일한 Map인지 비교한다.

V get(Object key)

// V - the type of mapped values
지정된 key 객체에 대응하는 value 객체를 찾아서 반환한다.

int hashCode()

해시코드를 반환한다.

boolean isEmpty()

Map이 비어있는지 확인한다.

Set<K> KeySet()

K - the type of keys maintained by this map
Map에 저장된 모든 key객체를 반환한다.

V put(K key, V value)

Map에 value객체를 key객체에 연결(mapping)하여 저장한다.

void putAll(Map t)

지정된 Map의 모든 key-value쌍을 추가한다.

V remove(Object key)

지정한 key와 일치하는 key-value객체를 삭제한다.

int size()

Map에 저장된 key-value쌍의 개수를 반환한다.

Collection values()

Map에 저장된 모든 value객체를 반환한다.

Map.Entry 인터페이스

Map 인터페이스의 내부 인터페이스(inner interface)
Map에 저장되는 key-value쌍을 다루기 위해 내부적으로 Entry인터페이스를 정의해놓음. 보다 객체지향적으로 설계하기 위함이다.

boolean equals(Object o)

동일한 Entry인지 비교한다.

Object getKey()

Entry의 key 객체를 반환한다.

Object getValue()

Entry의 value 객체를 반환한다.

int hashCode()

Entry의 해시코드를 반환한다.

Object setValue(Object value)

Entry의 value 객체를 지정된 객체로 변경한다.

profile
Hello I'm Shinny. A developer who try to enjoy the challenge.

0개의 댓글