Java/개념
JAVA/Stack와Queue
정복잉
2020. 5. 29. 21:47
반응형
package day18;
import java.util.ArrayDeque;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Stack;
public class Test01 {
public static void main(String[] args) {
Stack<Integer> st = new Stack<Integer>();
st.add(13);
st.push(14);
st.push(15);
st.push(16);
System.out.println("Stack의 맨위 객체에 저장된 것 : "+st.peek());
while(!st.empty()) {
System.out.println(st.pop());
}
Queue<Double> q = new LinkedList<Double>();
q.add(3.14);
q.add(2.74);
q.offer(7.89);
q.add(5.18);
System.out.println("Queue의 LinkList의 상단 객체의 저장된 값 : "+q.peek());
while(! q.isEmpty()) {
System.out.println(q.poll());
}
Queue<Integer> pq = new PriorityQueue<Integer>();
pq.add(1);
pq.add(4);
pq.add(5);
pq.add(2);
pq.add(3);
System.out.println("Queue의 PriorityQueue의 상단 객체의 저장된 값 : "+pq.peek());
while(! pq.isEmpty()) {
System.out.println(pq.poll());
}
※개념정리
Stack?
LIFO(Last In First Out)구조 = 마지막에 저장한 데이터를 가장 먼저 꺼내는 방식
add/set/push : 객체추가
pop : 맨 위 객체 삭제
peek : 맨 위 객체 반환
Stack -> 배열
Double[ ] array = set.toArray(new Double[set.size]);
배열->Strack (x)
반복자 가능
Queue
FIFO(First In First Out)구조 = 처음에 저장한 데이터를 가장 먼저 꺼내는 방식
add/offer : 객체추가
remove : 객체삭제 / 객체가 비웠다면 에러
poll : 객체삭제 / 객체가 비웠다면 null 반환
element : 객체읽기 / 비웠다면 에러
peek : 객체읽기 / 비웠다면 null 반환
*LinkedList는 Queue에 속한다.
Oueue<String> queue = new LinkedList<String>( ); (가능)
PriorityQueue
저장순서와 상관없이 우선순위가 높은 것부터 꺼내는 특징이 있는 컬렉션인다.
또한 null을 저장 할수 없다.