import java.util.LinkedList; import java.util.Queue; public class JavaEx29 { public static void main(String[] args) { //FIFO(First In First Out) Queue<String> qu = new LinkedList<>(); qu.offer("java"); qu.offer("python"); qu.offer("JSP"); // for(String s : qu) { // System.out.print(s + " "); // } System.out.println("Queue의 크기 : " + qu.size()); System.out.println("--------------------------------"); System.out.println(qu.poll()); System.out.println("Queue의 크기 : " + qu.size()); System.out.println(qu.poll()); System.out.println("Queue의 크기 : " + qu.size()); System.out.println(qu.poll()); System.out.println("Queue의 크기 : " + qu.size()); } }
Queue는 Stack과는 반대로 FIFO의 구조를 가지고 있다. "First In First Out" 이다. 유통을 생각해보면 "선입선출"이라고 생각하면 쉬울 것 같다. 처음 들어온 것이 가장 먼저 나간다는 뜻이기 때문이다.
Queue는 offer() 메소드를 사용하여 값을 집어 넣는다. 여기서 특이한 점은 향상된 for문으로 Queue의 요소들을 전부 출력하면 저장되어 있는 요소들이 그대로 유지가 되지만,
poll() 메소드를 사용하여 뽑아내게 되면 뽑아낸 뒤에 삭제되는 것을 확인 할 수 있었다.
Queue의 크기가 3으로 시작해서 2,1,0으로 줄어드는 것을 볼 수 있다
이로써, Queue는 poll() 메소드로 값을 뽑아내면 뽑아낸 값은 출력이 되고, 사라진다는 것을 알 수 있었다.
output :
Stack은 또 Queue와는 반대로 마지막에 들어온 값이 가장 먼저 나가는 구조로 되어있다.
"LIFO"라고 하는데, "Last In First Out" 이다
직역하면 "후입선출"이라고 할 수 있겠다.
import java.util.Stack; public class JavaEx30 { public static void main(String[] args) { //LIFO(Last In First Out) Stack<String> stack = new Stack<>(); stack.push("java"); stack.push("phtyon"); stack.push("JSP"); System.out.println("stack의 크기 : " + stack.size()); System.out.println("-------------------------------------"); System.out.println(stack.pop()); System.out.println("stack의 크기 : " + stack.size()); System.out.println(stack.pop()); System.out.println("stack의 크기 : " + stack.size()); System.out.println(stack.pop()); System.out.println("stack의 크기 : " + stack.size()); } }
Stack은 push() 메서드를 통해서 값을 삽입하고, Stack 역시 단순 출력을 하면 값이 사라지지는 않는다.
Stack은 pop() 메서드를 사용하면 값이 마지막 값부터 나오는데, 향상된 for문으로 값을 출력하면 가장 처음 값부터 출력된다는 다른 점이 있다.
Stack 역시 pop() 메서드를 사용해서 값을 하나하나 뽑아내면 뽑을때마다 Stack의 Size가 줄어들고 있는 것을 볼 수 있다.
Stack역시 값을 뽑아내면 값이 사라진다는 이야기가 된다.
또, Stack은 마지막 값부터 빼올 수 있으므로,
JSP > phtyon > java 의 순으로 출력된다.
output: