이전 포스팅에서 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
'IT > Java' 카테고리의 다른 글
Spring prototype Bean (53) | 2023.07.29 |
---|---|
Spring 에서 Singleton (51) | 2023.07.28 |
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed (82) | 2023.07.23 |
의존관계 주입시 Bean이 없을때 (63) | 2023.07.22 |
디컴파일에 대해(.jar 파일, .class파일) (32) | 2023.07.21 |
댓글