Categories: Java 언어Korean

Java 총 정리[85. Queue]

Queue

이전 걸음까지 Java에 자료구조에 대해서 공부를 하겠습니다. 이전 걸음에서는 특이한 구조를 가지고 있는 Stack에 대해서 공부를 했습니다. 이번에는 자료구조의 마지막으로 하나의 구조를 더 배우도록 하겠습니다. 끝까지 글을 읽어 주셔서 자료구조를 잘 마무리 해주세요.

Queue라는 자료구조에 대해서 이번 걸음에서 같이 공부를 해보도록 하겠습니다. Queue같은 경우에는 Stack과는 정반대로 자료를 관리를 하게 됩니다. 둘의 다른 점을 이해하고 공부를 한다면 Queue에 대한 내용을 더 빠르게 이해를 할 수 있습니다.

Queue란 무엇 인지와 Queue의 동작 원리 마지막으로 Queue의 예제를 만들어 봄으로써 Queue를 어떻게 사용 하는 방법에 대해서 이번 걸음에서 같이 공부를 해보도록 하겠습니다. 끝까지 글을 읽어주셔서 자료구조를 확실히 마무리 해주세요.

Queue 란?

위의 이미지로 알 수 있습니다. 순서대로 자료가 저장을 하면 자료를 추출을 할 때 들어간 순서대로 자료가 나옵니다. First in First out입니다. 처음 들어온 데이터는 처음으로 나가기 때문에 일반 상식적으로 생각을 하시면 됩니다.

Queue 구조

Queue와 같은 경우에는 데이터를 추가하고 추출하는 경우 화살표와 같이 진행을 하게 됩니다. 또한 숫자가 들어온 순서를 이야기 하는데 숫자와 같이 데이터가 나가는 것을 확인을 할 수 있습니다. Queue 같은 경우에는 Method로 offer로 추가를 하고 poll로 추출을 진행을 하게 됩니다.

Queue 예제 소스

    
import java.util.LinkedList;

public class QueueTest {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  LinkedList q = new LinkedList();
  System.out.println("큐 offer : " + q.offer("한국"));
  System.out.println("큐 offer : " + q.offer("중국"));
  System.out.println("큐 offer : " + q.offer("미국"));
  System.out.println("큐 offer : " + q.offer("러시아"));
  System.out.println("큐 offer : " + q.offer("인도"));
  System.out.println("큐 offer : " + q.offer("스페인"));
  
  System.out.println("===============================");
  int index = q.indexOf("러시아");
  if(index != -1) {
   System.out.println("큐에서 숫자 \"러시아\"의 위치는 : " +
   index + "번째 입니다.");
  }
  else {
   System.out.println("큐에서 숫자 \"러시아\"가 없습니다.");
  }
  System.out.println("===============================");
  while(!q.isEmpty()) {
   String obj = q.poll();
   System.out.println("poll : "+ obj);
  }
 }
}

    

위 예제 소스와 같이 offer로 순서대로 들어간 나라가 poll에 의해서 순서 그대로 출력이 되는 것을 확인을 할 수 있습니다. 기본 상식이랑 같기 때문에 잘 사용 하실 수 있습니다.

Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

4개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

5개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

5개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

6개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

6개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

6개월 ago

This website uses cookies.