JCF

  • Java Collections Framework
  • 여러 원소를 하나의 그룹으로 묶어 관리해주는 객체
  • 컬렉션을 표현하고 다루기 위한 통합 프레임워크
    • 클래스와 인터페이스의 집합
    • 다양한 방식으로 저장, 정렬, 검색, 수정하는 도구를 제공
  • 컬렉션을 일관된 방법으로 다룰 수 있음
    • 표준화된 인터페이스 : 컬렉션의 기능을 표현
    • 어떻게 표현되는 지와 상관없이 일관성 있게 다룸
    • 클래스 : 인터페이스를 구현한 클래스를 제공

  1. JCF의 인터페이스
    • Set : 순서는 의미가 없으며 중복을 허용하지 않는 자료구조
    • List : 중복을 허용하고 순서에 의미가 있는 자료구조
    • Queue : List와 유사하나 원소의 삽입/삭제가 FIFO 방식
    • Map : 원소가 <Key, value>의 형태이며 키는 유일해야 함

  2. JCF의 인터페이스와 클래스
    • 제네릭 타입. 다루는 자료의 유형을 지정해야 함

Set List Queue Map
해싱 HashSet HashMap
배열 ArrayList
Vector(Stack)
연결리스트 LinkedList LinkedList
해싱+연결리스트 LinkedHashSet LinkedHashMap
SortedSet SortedMap
트리 TreeSet TreeMap
  1. Collection 인터페이스 메소드
    • boolean add(E e)
    • boolean addAll(Collection<? extends E> c)
    • boolean remove(Object o)
    • boolean removeAll(Collection<?> c)
    • boolean retainAll(Collection<?> c)
    • void clear
    • 원소 탐색 메소드
      • boolean contains(Object o)
      • boolean containsAll(Collection<?> c)
      • boolean isEmpty()
    • 기타 메소드
      • int size()
      • int hashCode()
      • Object[] toArray()
      • Iterator iterator()
      • boolean equals(Object)

ArrayList

  • List 인터페이스를 구현한 클래스
    • 크기 조절이 가능한 배열로 구현
  • 같은 자료가 중복될 수 있으며, 입력된 순서대로 관리됨
    • 특정 위치의 자료를 참조할 수 있음
  • List 인터페이스를 살펴봐야 함

  1. 메소드
    • boolean add(E e), void add(index, E element)
    • boolean remove(Object o), E remove(int index)
    • E get(int index), E set(int index, E element)
    • int indexOf(Object o), int lastIndexOf(Object o)

  2. List 클래스
    • 순서가 있고 중복을 허용하는 구조
    • 원소를 순차적으로 처리하는 구조
      • 첨자에 의한, 특정 위치의 원소 처리가 가능

Iterator 인터페이스

  • 컬렉션에 저장된 원소를 차례대로 다룰 수 있음
  • 다음 메소드를 제공
    • boolean hasNext(), E next(), void remove()
  • HashSet, ArrayList, LinkedList 등에서 Iterator 객체를 리턴하는 메소드가 정의됨

LinkedList 클래스

  • ArrayList와 마찬가지로 List 인터페이스를 구현한 클래스
    • 앞의 예제의 ArrayList를 LinkedList로 바꿔도 됨
  • Queue 인터페이스를 구현함
  • 스택 자료구조에서 필요한 메소드도 제공함
    • void push(E), void pop()

  1. 메소드
    • boolean offer(E)
    • boolean add(E)
    • E poll()
    • E remove()
    • E peek()
    • E peek()
    • E element()

HashMap 클래스

  • (Key, value)을 갖는 원소로 구성되는 컬렉션을 다루기 위한 인터페이스
  • key는 중복되지 않으며, 하나의 key에 하나의 value만 대응됨
  1. 메소드
    • V put(K key, V value)
    • V get(Object key)
    • V remove(Object key)
    • boolean containsKey(Object key)
    • Collection values()
    • Set keySet()

  • 해싱을 이용하여 Map 인터페이스를 구현한 클래스
    • 자료 탐색 방법이 ArrayList나 LinkedList 클래스와 다름

Updated: