Collection Framework - Collection Interface

Collection Framework

Collection Framework란 다수의 데이터를 쉽게 처리할 수 있는 표준화 된 방법을 제공하는 클래스들을 말한다. 핵심 인터페이스는 List, Set, Map이 존재하고 이를 상속받아 구현 한 다양한 타입의 클래스가 존재한다. 각 인터페이스의 특성을 파악하고, 이를 구현하는 하위 클래스의 별도 특성과 동작 방식이 중요 한 것 같다. 






 Interface 

 특징

 List

 입력 순서유지, 중복가능

 (ArrayList, LinkedList, Stack, Vector[각주:1]등)

 Set

 입력 순서무시, 중복불가

 (HashSet, TreeSet 등)

 Map

 Key, Value로 이루어진 데이터 집합

 순서개념 없음, Key중복불가, Value중복가능.

 (HashMap, TreeMap, Hashtable[각주:2], Properties 등)

* List와 Set에서 "입력순서"라고 표시한 이유는 Set은 순서가 없다고 설명하는 자료들이 많은데 TreeSet같은 경우는 "정렬순서"는 있기 때문에 정확하게 표현하면  입력순서는 무시되고 정렬순서는 존재한다.


가장 중요한 부분인 것 같다. List와 Set을 구분하는 것. List는 입력한 순서를 유지 할 수 있고 중복을 허용한다는 점. Set은 입력한 순서를 무시하고 중복이 불가능 하다는 점이다. 그외에 세부적인 특성은 하위 클래스에서 어떤 자료구조를 통해서 Interface내용을 구현했는지에 따라 다르다. (Tree, Hash, Linked등) 그럼으로 기본 인터페이스 특성을 잘 파악하고 하위 클래스에 특성만 파악하면 클래스 계층도를 통해서도 어떤 Collection이 어떤 특성을 갖는지 파악하는 것이 가능하다.


Collection Interface

Collection Interface는 아래와 같은 메소드를 정의하고 있으며 List, Set Interface는 이를 상속 있다.

 Method

 설명

 boolean add(Object o)

 지정 된 객체(o)를 Collection에 추가한다.

 boolean addAll(Collection c)

 지정 된 Collection(c)의 객체들을 Collection에 추가한다.

 void clear()

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

 boolean contains(Object o)

 지정된 객체(o)가 Collection에 포함되어 있는지 확인.

 boolean containAll(Collection c)

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

 boolean equals(Object o)

 동일한 Collection인지 비교.

 int hashCode()

 Collection의 hashCode를 반환한다.

 boolean isEmpty()

 Collection이 비어 있는지 확인.

 Iterator iterator()

 Collection의 Iterator를 반환.

 boolean remove(Object o)

 지정된 객체(o)를 Collection에서 삭제.

 boolean removeAll(Collection c)

 지정된 Collection(c)에 존재하는 모든 객체를 Collection에서 삭제.

 boolean retainAll(Collection c)

 지정된 Collection(c)에 포함된 객체만 남기고 다른 객체는 Collection에서 삭제. 이로 인해 Collection에 변화가 있는 경우 true, 변화가 없는 경우 false.

 int size()

 Collection에 저장된 객체의 수 반환.

 Object[] toArray()

 Collection에 저장된 객체를 객체배열(Object[])로 반환.

 Object[] toArray(Object[] a)

 저장된 배열에 Collection에 포함되어 잇는 객체를 저장하여 반환.



관련글 보기

Collection Framework

List Interface : ArrayList, LinkedList, Stack and Queue

Set Interface : HashSet, LinkedHashSet, TreeSet, Comparable, Comparator

Map Interface : HashMap, LinkedHashMap, TreeMap



  1. deplecated되어 ArrayList사용권장 [본문으로]
  2. deprecated되어 HashMap사용권장 [본문으로]

이 글을 공유하기

댓글

Email by JB FACTORY