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 : 컴퓨터
값 : 컴퓨터
값 : 키보드
값 : 모니터
값 : 마우스
계속하려면 아무 키나 누르십시오 . . .
'Study Note > Java' 카테고리의 다른 글
JAVA_ Test153_ 컬렉션 프레임워크(Collection Framework) / Vector(벡터) 클래스 (0) | 2018.06.17 |
---|---|
JAVA_ Test152_ 컬렉션 프레임워크(Collection Framework) / Queue 클래스 (0) | 2018.06.17 |
JAVA_ Test150_ 컬렉션 프레임워크(Collection Framework) / 제네릭 (0) | 2018.06.17 |
JAVA_ Test149_ 컬렉션 프레임워크(Collection Framework) (0) | 2018.06.17 |
JAVA_ Test148_ 예외(Exception) 처리 / 다른 예외 다시 던지기 / ⓐ빨간폭탄 → ⓑ파란폭탄 (0) | 2018.06.17 |
댓글