[JAVA] QUEUE 큐
출처:
<https://118k.tistory.com/266>
<https://qortn.tistory.com/225>
<http://tcpschool.com/java/java_collectionFramework_stackQueue>
Queue
-
특징
: FIFO(First In First Out) 구조의 자료. 배드민턴 공 통을 생각하자
: Queue(큐) 클래스 인스턴스를 생성하기 위해선 아래와 같이 'LinkedList()' 생성자를 호출해야 함.
Queue q = new LinkedList();
:push() 메소드만을 이용하여 데이터를 입력하면 스택처럼 동작 가능. 반대로, offer만을 이용하여 데이터를 입력하면 큐로 동작.
데이터 입력할 때 메소드를 잘 선택하여 입력
<메소드>
boolean add(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴.
boolean isEmpty()
큐가 비어있는지 true/false로 반환
int size(Object o)
큐에 들어있는 원소의 갯수 정수로 반환
E element()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
boolean push(E e)
해당 큐의 맨 앞에 전달된 요소를 삽입
E peek()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
만약 큐가 비어있으면 null을 반환함.
E poll()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.
만약 큐가 비어있으면 null을 반환함.
E remove()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.
System.out.println(push한 정수);
맨 뒤 요소 반환하는 방법
-
기본 예제
package till;
import java.util.*;
public class Main {
public static void main(String[] args){
LinkedList<String> qu = new LinkedList<String>(); // 큐의 생성
//Deque<String> qu = new ArrayDeque<String>();
// add() 메소드를 이용한 요소의 저장
qu.add("넷"); //boolean add(E e): 해당 큐의 맨 뒤에 전달된 요소를 삽입함.
qu.add("둘");
qu.add("셋");
qu.add("하나");
qu.offer("뒤로 삽입함"); //offer는 데이터를 뒤로 입력한다.
qu.push("앞으로 삽입함"); //push는 데이터를 앞으로 입력하고
System.out.println(qu.peek()); //E peek(): 해당 큐의 맨 앞에 있는 요소를 반환함. 만약 큐가 비어있으면 null을 반환함.
System.out.println(qu);
System.out.println(qu.poll());//E poll(): 해당 큐의 맨 앞에 있는 요소를 반환하고, 해당 요소를 큐에서 제거함. 만약 큐가 비어있으면 null을 반환함.
System.out.println(qu);
// remove() 메소드를 이용한 특정 요소의 제거
qu.remove("하나");// E remove(): 해당 큐의 맨 앞에 있는 요소를 제거함.
System.out.println(qu);
}
}
<메소드>
boolean add(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴.
boolean isEmpty()
큐가 비어있는지 true/false로 반환
int size(Object o)
큐에 들어있는 원소의 갯수 정수로 반환
E element()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
boolean push(E e)
해당 큐의 맨 앞에 전달된 요소를 삽입
E peek()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
만약 큐가 비어있으면 null을 반환함.
E poll()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.
만약 큐가 비어있으면 null을 반환함.
E remove()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.
System.out.println(push한 정수);
맨 뒤 요소 반환하는 방법
<메소드>
boolean add(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴.
boolean isEmpty()
큐가 비어있는지 true/false로 반환
int size(Object o)
큐에 들어있는 원소의 갯수 정수로 반환
E element()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
boolean offer(E e)
해당 큐의 맨 뒤에 전달된 요소를 삽입함.
boolean push(E e)
해당 큐의 맨 앞에 전달된 요소를 삽입
E peek()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함.
만약 큐가 비어있으면 null을 반환함.
E poll()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함.
만약 큐가 비어있으면 null을 반환함.
E remove()
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함.
System.out.println(push한 정수);
맨 뒤 요소 반환하는 방법