출처:
<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한 정수);
맨 뒤 요소 반환하는 방법
'ALGORITHM > 개념들' 카테고리의 다른 글
[JAVA] 알고리즘을 최적화 해보자 (2) | 2019.06.24 |
---|---|
[Computational Thinking Skills] 프로그래밍과 논리/수학 (0) | 2019.04.27 |
[JAVA] Stack 스택 (0) | 2019.03.31 |
[JAVA] HashMap 해쉬 맵 (0) | 2019.03.31 |
알고리즘 Pseudo-code 모음 (0) | 2018.12.17 |
Comments