ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java]큐(Queue)
    Algorithm/자료구조 for Algorithm 2020. 9. 25. 21:22

    *큐(Queue)

    ->큐란 선입선출(FIFO : First In First Out)의 특성을 가진 자료구조이다.

    ->쉽게 말해 먼저 들어간 것이 먼저 나온다. 정거장에 들어오는 지하철이나, 놀이공원에 줄 서 있는 사람들을 생각하면 이해하기 쉽다.

    큐 자료구조

    *Java의 큐

    ->큐 입력 연산은 일반적으로 offer() 메서드, 출력 연산은 poll() 메서드를 이용한다(add()와 remove()도 있지만, 이 메서드들은 Exception을 발생시키는 특징이 있다).  head에 있는 원소(다음으로 나올 차례인 것)를 확인하는 연산은 peek()메서드를 이용한다. 

    출처 : https://docs.oracle.com/javase/7/docs/api/java/util/Queue.html

    ->자바의 Queue관련 API를 살펴보면 인터페이스로 구현되어 있기 때문에, 큐 인터페이스를 상속하여 구현해놓은 LinkedList<E>클래스를 이용하여 객체를 생성한다.

    ※이외에도 큐는 여러 방면으로 활용되는 경우가 많아, 우선순위큐(PriorityQueue)등의 다른 클래스들을 이용하여 객체를 생성하고 활용할수도 있다.

    import java.util.LinkedList;
    import java.util.Queue;
    
    public class test {
    	public static void main(String[] args) {
    		Queue<Integer> q = new LinkedList<Integer>();
    		
            // 큐에 1, 2, 3, 4를 차례로 넣는다.
    		q.offer(1);
    		q.offer(2);
    		q.offer(3);
    		q.offer(4);
            // 제일 처음 넣은 1을 뺀다.
    		q.poll();
            // 제일 head의 원소를 확인 : 결과는 2.
    		System.out.println(q.peek());
    		System.out.println(q);
    		q.clear();
    		System.out.println(q);
    	}
    }

     

    댓글

Designed by Tistory.