Java 자료구조 Queue | 큐 remove, poll 차이

박예선·2023년 3월 27일
1

Java

목록 보기
3/6

큐 자료구조 관련 강의에서, 강의예제를 먼저 풀어보고 강의를 들었는데
나는 큐에서 테이터를 없앨 때 poll을 사용했는데 강사님은 remove를 쓰셨다.
근데 결과는 똑같아서 이 둘의 차이가 궁금해져서 정리해보았다.
++ 큐에서 데이터를 삭제하는 또다른 방법인 clear까지 더해서 정리!

혹시 잘못된 부분이 있거나 궁금한 부분은 댓글 남겨주세요
피드백 환영입니다⭐️


큐에서 데이터를 삭제하는 방법

먼저, 큐는 선입선출 구조이기 때문에 먼저 들어간 데이터가 먼저 삭제된다는 점 참고!

queue.remove()

-> 큐의 첫번째 요소를 삭제(및 반환)한다.
만약 큐가 비어있으면 ⛔️예외가 발생⛔️한다.

queue.poll()

-> 큐의 첫번째 요소를 삭제(및 반환)한다.
만약 큐가 비어있으면 ⛔️null을 반환⛔️한다.

queue.clear()

-> 큐의 모든 요소를 삭제한다.
반환타입은 void이다.(반환은 하지 않는다.)


import java.util.LinkedList;
import java.util.Queue;

public class Main {
    public static void main(String[] args) {
        Queue queue = new LinkedList();

        queue.add(1);
        queue.add(2);
        System.out.println("queue = " + queue); // queue = [1, 2]
        
        // remove 해보기
        System.out.println("remove한 값:" + queue.remove()); // remove한 값: 2
        System.out.println("queue = " + queue); // queue = [1]

        // poll 해보기
        System.out.println("poll한 값: " + queue.poll()); // poll한 값: 1
        System.out.println("queue = " + queue); // queue = []

//        System.out.println("remove한 값:" + queue.remove()); -> 예외발생⛔️
        System.out.println("poll한 값: " + queue.poll()); // poll한 값: null
        
        // 다시 데이터 넣기
        queue.add(1);
        queue.add(2);
        System.out.println("queue = " + queue); // queue = [1, 2]

        // clear 해보기
        queue.clear();
        System.out.println("queue = " + queue); // queue = []
    }
}

참고

cs-fundamentals.com
블로그

profile
개발 좋아 lynn08082@gmail.com

0개의 댓글