프로그래밍 언어/JAVA

Java 08 - 컬렉션 프레임워크 2

영킴 2022. 3. 20. 21:41

LinkedList


  • 배열과 달리 불연속적으로 존재하는 데이터를 연결한다.
  • dooubly linked list, doubly circular linked list : 데이터 접근성을 향상시킨 구조
  • 순차적인 데이터 추가/삭제는 ArrayList가 빠르지만 비순차적은 LinkedList가 빠르다.
  • 접근시간이 ArrayList에 비해 느리고 데이터가 많을수록 접근성이 떨어진다.

 

스택과 큐


  • 스택 : LIFO구조. 마지막에 저장된 것을 제일 먼저 꺼낸다.
  • 큐 : FIFO구조. 제일 먼저 저장한 것을 제일 먼저 꺼낸다.
  • 덱 : 스택과 큐의 결합. 양끝에서 저장과 삭제가 가능하다.

 

Enumeration, Iterator, ListIterator


  • Enumeration은 Iterator의 구버전이다.
  • 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스다.
  • ListIterator는 Iterator의 접근성을 향상시킨 것이다. (단방향->양방향)
  • Iterator 구현체 - hasNext(), next(), remove(), forEachRemaining()
  • ListIterator 구현체 - hasNext(), hasPrevious(), next(), previous(), nextIndex(), previousIndex(), add(), remove(), set()

 

Arrays


  • 배열을 다루기 편리한 메서드 제공한다.
  • 배열의 출력 : toString()
  • 다차원 배열의 비교와 출력 : deepEquals(), deepToString(), equals()
  • 배열의 복사 : copyOf(), copyOfRange()
  • 배열 채우기 : fill(), setAll()
  • 배열을 List로 변환 : asList()
  • 배열의 정렬과 검색 : sort(), binarySearch()

 

Comparator와 Comparable


  • Comparable : 기본 정렬기준을 구현하는데 사용한다.
  • Comparator : 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용한다.
  • compare() : 두 객체를 비교한다.
  • compareTo : 주어진 객체를 자신과 비교한다.