HappyWeasel
Java - 스택( Stack ), 큐 ( Queue ) 본문
Stack 객체를 사용하기 위해서는
import java.util.Stack;
위의 라이브러리를 불러와야한다.
Stack은 LIFO이다.
LIFO => Last In Fisrt Out (마지막에 입력 된 값이 제일 먼저 출력된다.)
method 호출, 수식계산, undo/redo, 뒤로/앞으로(웹브라우저)에서 사용된다.
- push : 입력
- pop : 출력
Stack<Integer> st = new Stack<Integer>(); // 스택의 생성
//Deque<Integer> st = new ArrayDeque<Integer>();
// push() 메소드를 이용한 요소의 저장
st.push(4);
st.push(2);
st.push(3);
st.push(1);
// peek() 메소드를 이용한 요소의 반환
System.out.println(st.peek());
System.out.println(st);
// pop() 메소드를 이용한 요소의 반환 및 제거
System.out.println(st.pop());
System.out.println(st);
// search() 메소드를 이용한 요소의 위치 검색
System.out.println(st.search(4));
System.out.println(st.search(3));
메소드설명
boolean empty() | 해당 스택이 비어 있으면 true를, 비어 있지 않으면 false를 반환함. |
E peek() | 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환함. |
E pop() | 해당 스택의 제일 상단에 있는(제일 마지막으로 저장된) 요소를 반환하고, 해당 요소를 스택에서 제거함. |
E push(E item) | 해당 스택의 제일 상단에 전달된 요소를 삽입함. |
int search(Object o) |
해당 스택에서 전달된 객체가 존재하는 위치의 인덱스를 반환함. 이때 인덱스는 제일 상단에 있는(제일 마지막으로 저장된) 요소의 위치부터 0이 아닌 1부터 시작함. |
Queue는 LinkedList에서 사용된다.
import java.util.LinkedLIst;
Queue : FIFO (First In First Out)
최근 사용문서, 인쇄작업대기목록, Buffer에 사용된다.
- offer : 입력
- poll : 출력
LinkedList<String> qu = new LinkedList<String>(); // 큐의 생성
//Deque<String> qu = new ArrayDeque<String>();
// add() 메소드를 이용한 요소의 저장
qu.add("넷");
qu.add("둘");
qu.add("셋");
qu.add("하나");
// peek() 메소드를 이용한 요소의 반환
System.out.println(qu.peek());
System.out.println(qu);
// poll() 메소드를 이용한 요소의 반환 및 제거
System.out.println(qu.poll());
System.out.println(qu);
// remove() 메소드를 이용한 요소의 제거
qu.remove("하나");
System.out.println(qu);
메소드설명
boolean add(E e) |
해당 큐의 맨 뒤에 전달된 요소를 삽입함. 만약 삽입에 성공하면 true를 반환하고, 큐에 여유 공간이 없어 삽입에 실패하면 IllegalStateException을 발생시킴. |
E element() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함. |
boolean offer(E e) | 해당 큐의 맨 뒤에 전달된 요소를 삽입함. |
E peek() |
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환함. 만약 큐가 비어있으면 null을 반환함. |
E poll() |
해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거함. 만약 큐가 비어있으면 null을 반환함. |
E remove() | 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거함. |
'Basic > Java' 카테고리의 다른 글
Java - 멀티 스레드 (Multi Thread)의 개요 및 구현 (0) | 2019.04.21 |
---|---|
Java - ArrayList, LinkedList (0) | 2019.04.20 |
Java - 제너릭 (Generic) (0) | 2019.04.20 |
Java - enum (열거형 데이터 타입) (0) | 2019.04.20 |
Java - JVM에 대하여 (스크랩) (0) | 2019.04.20 |
Comments