자바에서 큐를 사용하다가, 두 가지씩 존재하는 추가, 삭제, 검색 메소드의 차이가 궁금해져서 정리
먼저 Queue 선언
import java.util.LinkedList;
import java.util.Queue;
Queue<Integer> queue = new LinkedList<>();
Queue<String> queue = new LinkedList<>();
1. add, offer
queue.add(x);
queue.offer(x);
add와 offer 는
공통점 : 큐 맨 뒤에 값 삽입, 값 추가 성공 시 true 반환
차이점 : add는 큐가 꽉찬 경우 illegalStatieException 에러 반환 , offer는 값 추가 실패시 false 반환
2. remove, poll (+ clear)
queue.remove();
queue.poll();
queue.clear();
remove와 poll 은
공통점 : 큐 맨 앞에 있는 값 반환 후 삭제
차이점 : remove는 큐가 비어있을 때 NoSuchElementException 에러 반환 , poll은 null 반환
clear 는 큐 비우는 용.
3. element, peek
queue.element();
queue.peek();
remove,poll과 같은 차이를 보여주지만, 이 둘은 값을 반환할 뿐 삭제는 하지 않는다.
댓글