Java
Queue
Queue?
- FIFO 구조를 가진 자료구조 (First In First Out)
- 자바에서는 큐 클래스를 이용해 큐를 사용할 수 있다.
- 큐 클래스를 사용하기 위해 링크드리스트 클래스를 같이 사용해야 한다.
Import
import java.util.Queue
import java.util.LinkedList
Queue<T> queue = new LinkedList<T>();
add vs offer
- add와 offer는 둘다 큐에 데이터를 추가할때 사용하는 함수이다.
- add는 데이터가 추가 되면 true를 실패시 Exception을 발생 시킨다.
- 반면에 offer는 데이터를 추가하면 true 실패시 false만 반환 시키는 구조이다.
queueInt.add(1);
System.out.println(Arrays.toString(queueInt.toArray()));
boolean result = queueInt.offer(2);
System.out.println(result);
System.out.println(Arrays.toString(queueInt.toArray()));
System.out.println(queueInt);
remove vs poll
- remove와 poll 역시 데이터를 삭제할때 사용하는 메서드이다.
- remove는 삭제시 맨 앞에있는 원소의 value를 리턴 공백이면 "NoSuchElementException" 예외 처리가 발생한다.
- poll은 삭제 성공시 value 공백 큐이면 null을 발생한다.
queue.remove();
queue.poll();
element vs peek
- 큐에서 데이터를 삭제하지 않고 조회만 하고 싶을때 사용하는 메서드들이다.
- element는 큐의 head 즉 가장 앞에 있는 value를 반환하고 / 존재하지 않으면 false를 반환한다.
- peek는 반환 성공시 value를 반환하고 /공백큐이면 null을 반환하는 형태이다.
queue.element();
queue.peek();
clear
queue.clear();
size
queue.size()
contains
- 큐에 조회하고 싶은 원소가 존재하는지 여부를 알고 싶을때
- 존재하면 true를 반환 / 존재 안하면 false를 반환
queue.contains(value)
isEmpty
- 큐가 공백인지 알고 싶을때
- 공백이면 true / 공백이 아니면 false를 반환
queue.isEmpty();