본문 바로가기

Java/Java_PrioityQueue,Deque,Iterator,,, 등등

Java_ PrioityQueue , Deque(Double - Ended Queue), Iterator, Listiterator, Enumeration

반응형

PrioityQueue

- 저장 순서에 관계 없이 우선순위가 높은 것부터 꺼낸다.

- null 은 저장할 수 없다. // 오류발생

- 저장공간 = 배열공간   으로 사용

- '힙(heep)'  자료구조형으로 저장 

- FIFO X

 

Deque(Double - Ended Queue)

- Queue 의 변형

- 한 쪽 끝으로만 추가 & 삭제 가능

- 구현체로는 ArrayDeque , LinkedList 등

 

**덱 메서드에 대응하는 메서드

덱 메서드에 대응하는 메서드

Iterator & Listiterator & Enumeration

- 컬렉션에 저장된 요소를 접근하는데 사용

- 인터페이스

Iterator, Enumeration = 구버전

Listiterator = Interator의 기능을 향상시킨 것

 

Iterator 

- 컬렉션에 저장된 각요소에 접근하는 기능

- iterator()는 컬렉션 인터페이스에 정의된 메서드

- 컬렉션의 자손은 List, Set에 포함

- iterator()를 호출해서 Iterator를 얻은 다음 반복문(while문을 자주이용)

  사용해서 컬렉션 클래스의 요소를 읽는다. 

- 단방향 읽기 가능

 

* List에 없고 ArrayList에만 있는 메서드를 사용 X  -> List 참조변수로 선언이 좋다.

  >> 하지만 참조변수의 타입을 ArrayList라면 선언문 이후 문장을 검토해야한다!!!  

  >> List에 정의되지 않은 메서드를 호출햇을 수도 있으니...

* Map인터페이스 구현한 컬렉션 클래스는 key와 value 을 쌍으로 저장하기 있기 때문에

  iterator()를 직접 호출 X       ->        keySet() , entrySet() 을 통해서 key와 value를

  따로 Set형태로 얻어 iterator()를 호출해야 Iterator를 얻는다.

** Iterator 메서드

Iterator 메서드

Listiterator & Enumeration

  Listiterator 

 - Iterator를 상속 받는 기능

 - Iterator에 양방향 조회기능 추가 ((*조건) 아래문장)

 - ArrayList , LinkedList 처럼 List인터페이스를 구현한 컬렉션에서 만!! 사용가능

 - Listiterator메서드는  Iterator 이전방향으로 접근기능을 추가한 것

  

**Listiterator 메서드

Listiterator 메서드

  Enumeration

 - Iterator의 구버전

 - Iterator 메서드이름만 다를 뿐 기능은 같다.

 

 

반응형