컬렉션 프레임웍(2)

roglog·2021년 7월 13일
0

java의 정석

목록 보기
29/36

4. Stack과 Queue


  • 스택

    • 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO구조
    • ArrayList와 같은 배열기반의 컬렉션 클래스가 적합
    • 자바에서 Stack클래스로 구현하여 제공
    • 처음에 저장한 데이터를 가장 먼저 꺼내게 되는 FIFO구조
    • 데이터의 추가/삭제가 쉬운 LinkedList로 구현하는 것이 더 적합
    • 인터페이스로 정의되어 Queue인터페이스를 구현한 클래스들을 이용
  • PriorityQueue

    • 저장한 순서에 관계없이 우선수위가 높은 것부터 꺼내게 됨
    • null 은 저장 불가
    • '힙(heap)'이라는 자료구조의 형태로 저장
  • Deque(Double-Ended Queue)

    • 양쪽 끝에 추가/삭제가 가능
    • 스택과 큐를 하나로 합쳐놓은 것과 같음

5. Iterator, ListIterator, Enumeration


  • 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스
  • Enumeration은 Iterator의 구버전
  • Iterator는 단방향으로만 이동할 수 있는데, ListIterator는 양방향으로의 이동이 가능
    List인터페이스를 구현한 컬렉션에서만 사용할 수 있음

Ex)

  Collection c = new ArrayList(); 
  // Collection에 없고 ArrayList에만 있는 메서드를 사용하는게 아니라면, Collection타입의 참조변수로 선언하는 것이 호환성이 좋음

  Iterator it = c.iterator();

  while(it.hasNext()) {
      System.out.println(it.next());
  }

6. Arrays


  • 배열을 다루는데 유용한 메서드가 정의되어 있음

7. Comparator와 Comparable


  • 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있음
  • Comparable을 구현한 클래스는 정렬이 가능하다는 것을 의미함
  • Comparable: 기본 정렬기준을 구현하는데 사용
  • Comparator: 기본 정렬기준 외에 다른 기준으로 정렬하고자할 때 사용

java의 정석 chapter11

profile
Full Stack Developer 📚

0개의 댓글