JAVA/JAVA 기본정리

컬렉션 프레임웍 / Collection인터페이스 / List / Set/ Map

hyun-1200 2022. 5. 8. 23:01

컬렉션 프레임웍 (Collections Framework) ?

- 데이터 군을 저장하는 클래스들을 표준화한 설계 

- 다수의 데이터(=데이터 그룹)을 표준화된 프로그래밍 방식

- JDK1.2 부터 컬렉션 프레임웍이 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고, 모든 컬렉션 클래스를 표준화된 방식으로 다룰수 있도록 체계화되었다.

 

 컬렉션 프레임웍에서는 컬렉션 데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고, 3개의 인터페이스를 정의하였다

-> List / Set / Map

- List와 Set의 공통적인 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다.

 

 

* 컬렉션 프레임웍의 핵심 인터페이스와 특징

List 순서가 있는 데이터 집합. 데이터의 중복을 허용한다.
ex) ArrayList , LinkedList, Stack, Vector 등 
Set 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다.
ex) HashSet, TreeSet 등
Map 키(Key)와 값(Value)의 쌍으로 이루어진 데이터의 집합.
순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
ex) HashMap, TreeMap, HastTable, Properties 등
  • 컬렉션 프레임웍의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있다. 
  • Vector나 HashTable 같은 기존의 컬렉션 클래스들은 호환을 위해, 설계를 변경해서 남겨두었지만 가능하면 사용하지 않는 것이 좋다. 그 대신  새로 추가된 ArrayList나 HashMap을 사용하자. 

Collection 인터페이스

- List와 Set의 조상인 Collection 인터페이스에는 다음과 같은 메서드들이 정의되어 있다.

  • boolean add(Object o) : 지정된 객체를 Collection에 추가한다.
  • boolean addAll(Collection c) : 지정된 Collection c 의 객체를 Collection에 추가한다.
  • void clear() : Collection의 모든 객체를 삭제한다.
  • boolean contains(Object o) : 지정된 객체가 Collection에 포함되는지 확인한다.
  • boolean containsAll(Collection c) : 
  • boolean equals(Object o) : 동일한 Collection인지 비교한다.
  • int hasCode()
  • boolean isEmpty()
  • Iterator iterator() 
  • boolean remove(Object o) / boolean removeAll(Collection c)
  • boolean retainAll(Collection c) : 지정된 Collection에 포함된 객체만을 남기고 다른 객체들은 Collection 에서 삭제한다. 이 작업으로 Collection에 변화가 있으면 true, 그렇지 않으면 false를 반환한다. 
  • int size()
  • Object[] toArray() / Object[] toArray(Object[] a) 

List 인터페이스

- 중복을 허용하면서 저장순서가 유지되는 컬렉션을 구현하는데 사용된다.

- ArrayList, LinkedList, Vector, Stack 이 있다. 

  • void add(int index, Object element) / boolean addAll(int index, Collection c) 
  • Object get(int index) : 지정된 위치 (index)에 있는 객체를 반환한다.
  • int indexOf(Object o) : 지정된 객체의 위치(index)를 반환한다. 첫번째 요소부터 순방향으로 찾는다. 
  • int lastIndexOf(Object o) : 지정된 객체의 위치(index)를 반환한다. 마지막 요소부터 역방향으로 찾는다.
  • ListIterator listlterator()
  • Object remove(int index)
  • Object set(int index, Object element) : 지정된 위치 index 에 객체 (element)를 저장한다.
  • void sort(Comparator c) : 지정된 비교자를 List로 정렬한다.
  • List subList(int fromIndex, int toIndex)  

Set 인터페이스

- 중복을 허용하지 않고, 저장순서가 유지되는 컬렉션 클래스를 구현하는데 사용된다.

- Set인터페이스를 구현한 클래스로는 HashSet, TreeSet 등이 있다. 

 

Map 인터페이스 

 

- Key와 값(Value)을 하나로 쌍으로 묶어서 저장하는 컬렉션 클래스를 구현하는ㄷ에 사용된다.

- 키는 중복될 수 없지만 값은 중복을 허용한다. 기존에 저장된 데이터와 중복된 키와 값을 저장하면 기존의 값은 없어지고 마지막에 저장된 값이 남게된다.

  • void clear()
  • boolean containsKey(Object key)
  • boolean containsValue(Object value)
  • Set entrySet()
  • boolean equals(Object o)
  • Object get(Object key)
  • int hashCode()
  • boolean isEmpty()
  • Set keySet()
  • Object put(Object key, Object value)
  • void putAll(Map t) 
  • Object remove(Object key)
  • int size()
  • Collection values()