[CH11. 컬렉션프레임웍과 유용한 클래스] 컬렉션 프레임워크

1. 컬렉션 프레임웍(Collection Framework)

1.6 Enumeration, Iterator, ListIterator

1.6.1 Iterator

컬렉션에 저장된 각 요소에 접근하는 기능을 가진 Iterator인터페이스를 정의해 Collection인터페이스에 Iterator를 반환하는 iterator()를 정의하고있다.

1
2
3
4
5
6
7
8
9
10
public interface Iterator{

boolean hasNext();
ObjectNext();
void remove();
}

public interface Collection {
public Iterator();
}

iterator()은 Collection 인터페이스에 구현되어있기 때문에 자손 클래스인 List와 Set에도 포함되어 있음.

메서드 설명
boolean hasNext() 읽어올 요소가 남아있는지 확인. 있으면 true, 없으면 false를 반환한다.
Object next() 다음 요소를 읽어온다. next()를 호출하기 전에 hasNext()를 호출해 확인하는것이 안전하다.
void remove() next()로 읽어 온 요소를 삭제. next()호출 한 다음에 remove()를 호출해야 한다.

1.6.2 Enumeration과 ListIterator

  • Enumeration은 컬렉션 프레임웍이 만들어지기 전에 사용하는것 Iterator의 구버전. Iterator를 사용하자.
  • ListIterator는 Iterator를 상속받아 기능을 추가한 것. 양방향으로 이동이 가능함.
    ArrayList나 LinkedList와 같이 List인터페이스를 구현한 컬렉션에서만 사용가능

1.7 HashSet

HashSet은 Set인터페이스를 구현한 가장 대표적 컬렉션.
중복된 요소를 저장하지 않음. 저장순서를 유지하지 않음.
저장순서 유지하려면 LinkedHashSet을 사용하면 됨.

생성자 또는 메서드 설명
HashSet() HashSet객체를 생성한다.
HashSet(Collection c) 주어진 컬렉션을 포함하는 HashSet객체를 생성한다.
HashSet(int initialCapactiy) 주어진 값을 초기용량으로 하는 HashSet객체를 생성한다.
HashSet(int initialCapactiy, float loadFactor) 초기용량과 load factor를 지정하는 생성자
boolean add(Object o) 새로운 객체를 저장한다
boolean addAll(Collection c) 주어진 컬렉션에 모든 객체를 추가한다.
void clear() 저장된 모든 객체를 삭제한다.
Object clone() HashSEt을 복제하여 반환한다.
boolean contains(Object o) 지정된 객체를 포함하고 있는지 알려준다.
boolean containsAll(Collection c) 주어진 컬렉션에 저장된 모든 객체들을 포함하고 있는지 알려준다.
boolean isEmpty() HashSet이 비어있는지 알려준다.
boolean iterator() Iterator 를 반환한다.
boolean remove(Object o) 지정된 객체를 HashSet에서 삭제한다.
boolean removeAll(Collection c) 주어진컬렉션에 저장된 모든 객체와 동일한 것을 HashSet에서 모두 삭제한다(차집합)
boolean retainAll(Collection c) 주어진 컬렉션에 저장된 객체와 동일한 것만 남기고 삭제한다.(교집합)
int size() 저장된 객체의 개수를 반환한다.
Object[] toArray() 저장된 객체들을 객체배열의 형태로 변환한다.
Object[] toArray(Object[] a) 저장된 객체들을 주어진 객체배열 a에 담는다.

1.8 ThreeSet

ThreeSet은 이진검색트리라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스.
정렬, 검색, 범위검색에 뛰어난 성능을 보인다.

댓글

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×