본문 바로가기
IT/Java

Queue (LinkedList) 사용법

by 성준하이 2023. 7. 26.
반응형

이전 포스팅에서 stack, Queue 등에 대해서 다룬 글이 있다.

그리고 또 Message Queue도 다뤘고, 비슷한 kafka 역시 다룬적이 있다.

내용은 아래 참고 포스팅 참고 바란다.

 

 

이들의 공통점은 Queue 를 사용한다는 것이다.

 

그럼 이 Queue 를 자바에서 어떻게 사용하는지 다뤄볼 것이다.

 

선언

Queue<Integer> q = new LinkedList<>();

 

값 추가

q.add(1);

q.offer(1);

 

둘의 차이는 아래와 같다.

 - add()

  • 해당 큐 맨 뒤에 값 삽입
  • 값 추가 성공 시 true 반환
  • 큐가 꽉 찬 경우 IllegalStateException 에러 발생

 - offer()

  • 해당 큐 맨 뒤에 값 삽입
  • 값 추가 성공 시 true 반환
  • 추가 실패 false 반환
값 제거

q.remove();

q.poll;

q.clear();

각각의 설명은 아래와 같다.

 - remove()

  • 큐 맨 앞에 있는 값 반환 후 삭제
  • 큐가 비어 있는 경우 NoSuchElementException 에러 발생

 - poll()

  • 큐 맨 앞에 있는 값 반환 후 삭제
  • 큐가 비어있을 경우 null 반환

 - clear()

  • 큐 비우기

그리고 Queue에서 중요한 부분인 peek()는 

가장 맨 앞에 있는 값을 반환 한다. 즉 poll 될 값이 보인다.


참고 포스팅

https://thenicesj.tistory.com/314

 

스택(Stack), 큐(Queue), 힙(Heap) 에 대해서

자료구조 알고리즘을 하다보면 스택, 힙, 큐에 대해서 많이 얘기를 들어봤을텐데 오늘 포스팅에서는 하나씩 설명을 해보려고 한다. 스택 선형 자료구조 Last In First out(LIFO) 구조 스택 특징 같은

thenicesj.tistory.com

https://thenicesj.tistory.com/512

 

message Queue (MQ) 란?

이번 포스팅에서는 메세지 큐에 대해서 알아볼 예정이다. 먼저 큐에 대한 개념은 아래 참고 포스팅을 통해서 확인 바란다. 메세지 큐는 말 그대로 큐 안에 메세지를 넣는 것이다. 사전적인 의미

thenicesj.tistory.com

 

반응형

댓글