hayu's 개발 일지

99클럽 코테 스터디 9일차 TIL + Queue 메서드 본문

자료구조&알고리즘

99클럽 코테 스터디 9일차 TIL + Queue 메서드

hayu00 2024. 5. 29. 21:40

학습 키워드

- Queue

 

공부한 내용

Queue 사용(메서드)

Queue 선언

  • 자바에서 큐는 LinkesList를 활용하여 생성해야 한다.

→ Queue와 LinkedList가 다 import되어 있어야 사용 가능하다.

import java.util.LinkedList; //import
import java.util.Queue; //import
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
Queue<String> queue = new LinkedList<>(); //String형 queue 선언, linkedlist 이용

Queue 값 추가 - add() / offer()

  • 자바에서 큐에 값을 추가 하고 싶다면 add(value) 또는 offer(value)라는 메서드를 활용하면 된다.
  • add(value) 메소드의 경우 만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킨다. queue에 값을 계속해서 추가해나간다면 아래 그림과 같은 형태로 데이터가 쌓이게 됩니다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
        queue.add(1);     // queue에 값 1 추가
        queue.add(2);     // queue에 값 2 추가
        queue.offer(3);   // queue에 값 3 추가

Queue 사이즈 - size()

Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
        queue.size();

Queue 값 삭제 - poll() / remove()

  • 큐에서 값을 제거하고 싶다면 poll()이나 remove() 메서드를 활용할 수 있다. poll()함수는 큐가 비어있으면 null을 반환한다.
  • remove()를 하면 가장 앞쪽에 있는 원소의 값이 제거된다.
  • 큐의 모든 요소를 제거하기 위해서는 clear()메서드를 사용하면 된다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
        queue.offer(1);     // queue에 값 1 추가
        queue.offer(2);     // queue에 값 2 추가
        queue.offer(3);     // queue에 값 3 추가
        queue.poll();       // queue에 첫번째 값을 반환하고 제거 비어있다면 null
        queue.remove();     // queue에 첫번째 값 제거
        queue.clear();      // queue 초기화

Queue 에서 가장 먼저 들어간 값 출력 - peek()

  • 큐에서 첫 번째로 저장된 값을 참조하고 싶을 때는 peek() 메서드를 사용한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
        queue.offer(1);     // queue에 값 1 추가
        queue.offer(2);     // queue에 값 2 추가
        queue.offer(3);     // queue에 값 3 추가
        queue.peek();       // queue의 첫번째 값 참조

Queue 해당 원소 확인 - contains()

  • 반환 값(boolean): 해당 값이 존재할 때 true / 해당 값이 없을 때 false 반환한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.contains(1);

Queue 공백인지 확인 - isEmpty()

  • 반환 값(boolean): 공백 큐이면 true / 공백 큐가 아니면 false 반환한다.
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언
queue.isEmpty();

 

회고

발생한 문제

- 코딩 문제 풀이 중에 Queue에 대한 공부가 부족하여 문제 풀이가 막히는 문제가 생겼다.

- 큐에 대한 공부를 진행했지만 사용 메서드에 대한 공부가 부족해서 공부를 진행했다. 

 

해결 방법

- 큐의 메서드를 공부했다.

 

알게된 내용

- 큐에 대한 메서드를 알게 되었고, 자바에서 큐는 LinkesList를 활용하여 생성해야 한다는 사실을 알게 되었다.

 

 

참고 자료

- https://velog.io/@db_jam/%EC%9E%90%EB%B0%94-%ED%81%90Queue-%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%A0%95%EB%A6%AC

- https://imyena.tistory.com/99