반응형
이전 포스팅에서 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
https://thenicesj.tistory.com/512
반응형
'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 |
댓글