본문 바로가기
Study Note/Java

JAVA_ Test151_ 컬렉션 프레임워크(Collection Framework) / Queue 클래스 FIFO 구조

by 시뮝 2018. 6. 17.
728x90


Test151  컬렉션 프레임워크(Collection Framework) / Queue 클래스 FIFO 구조

※ 큐(Queue)

   : 큐(Queue)는 FIFO(First Input First Output) 구조로

    먼저 입력된 자료를 먼저 출력하며 Queue 인터페이스를 구현한 클래스는

    큐와 관련된 다양한 기능을 제공한다.


※ Queue 인터페이스 인스턴스를 생성하기 위해서는 new 연산자를 이용하여

   Queue 인터페이스를 구현한(implements) 클래스의 생성자를 호출한다.

   ex) Queue ob = new LinkedList();


※ 주요 메소드

   - E element()

     : 큐의 head 요소를 반환하며 삭제하지 않는다.

   - boolean offer(E o)

     : 지정된 요소를 큐에 삽입한다.

   - E peek()

     : 큐의 head 요소를 반환하고 삭제하지 않으며, 큐 자료구조가 empty 인 경우 null 을 반환한다.

   - E poll()

     : 큐의 head 요소를 반환하고 삭제하며 큐 자료구조가 empty 인 경우 null 을 반환한다.

   - E remove()

     : 큐의 head 요소를 반환하고 삭제한다.


Test000.java

import java.util.Queue;

import java.util.LinkedList;


public class Test151

{

public static void main(String[] args)

{

// Queue 자료구조 생성

// Queue myQue = new Queue;

Queue<Object> myQue = new LinkedList<Object>();


String str1 = "컴퓨터";

String str2 = "키보드";

String str3 = "모니터";

String str4 = "마우스";


// myQue 라는 Queue 자료구조에 데이터 추가

myQue.offer(str1);

myQue.offer(str2);

myQue.offer(str3);

myQue.offer(str4);


// element() : 큐 자료구조에서 요소를 제거하지 않고 head 요소 반환.

System.out.println("값1 : " + (String)myQue.element());

System.out.println("값2 : " + (String)myQue.element());

//--==>> 값1 : 컴퓨터

//       값2 : 컴퓨터


System.out.println();


String val;


/*

// ① peek() : 큐의 head 요소 반환, 삭제 안함.

//             큐가 empty 일 경우 null 반환.

while(myQue.peek() != null)

{

// poll() : 큐의 head 요소 반환, 삭제 함.

//          큐가 empty 일 경우 null 반환.

val = (String)myQue.poll();

System.out.println("요소 : " + val);

}

//--==>> 요소 : 컴퓨터

//       요소 : 키보드

//       요소 : 모니터

//       요소 : 마우스

*/


/*

while(myQue.poll() != null)

{

// ② poll() : 큐의 head 요소 반환, 삭제 함.

//             큐가 empty 일 경우 null 반환.

val = (String)myQue.poll();

System.out.println("요소 : " + val);

}

//--==>> 요소 : 키보드

//       요소 : 마우스

*/


/*

// ②

while (true)

{

val = (String)myQue.poll();

if (val==null)

break;

else

System.out.println("값 : " + val);

}

//--==>> 값 : 컴퓨터

//       값 : 키보드

//       값 : 모니터

//       값 : 마우스

*/

// ③

while (!myQue.isEmpty())

{

val = (String)myQue.poll();

System.out.println("값 : " + val);

}

//--==>> 값 : 컴퓨터

//       값 : 키보드

//       값 : 모니터

//       값 : 마우스

}

}


cmd

값1 : 컴퓨터

값2 : 컴퓨터


값 : 컴퓨터

값 : 키보드

값 : 모니터

값 : 마우스

계속하려면 아무 키나 누르십시오 . . .







728x90

댓글