Stack => First in Last out
후입선출(LIFO)구조 ex)(웹브라우저 (뒤로가기), eclips 에러 보고)
<stack 명령 >
1) 자료 입력 : push(저장할 값)
2) 자료 출력 : pop() => 자료를 꺼내온 후 꺼내온 자료를 stack에서 삭제한다.
Queue => First in First out
선입선출(FIFO)구조
<Queue의 명령>
1) 자료입력 : offer(저장할 값)
2) 자료출력 : poll() => 자료를 Queue에서 꺼내온 후 꺼내온 자료를 Queue에서 삭제한다.
<Stack과 Queue는 LinckedList를 이용하여 사용할 수 있다>
package kr.or.ddit.basic;
import java.util.LinkedList;
public class T02StackQueueTest {
public static void main(String[] args) {
// Stack => 후입선출(LIFO)구조
// Queue => 선입선출(FIFO)구조
// Stack 과 Queue는 LinkedList를 이용하여 사용할 수 있다.
LinkedList<String> stack = new LinkedList<String>();
//List list = new LinkedList(); 도 가능
/*
* stack 명령
* 1) 자료 입력 : push(저장할 값)
* 2) 자료 출력 : pop() => 자료를 꺼내온 후 꺼내온 자료를 stack에서 삭제한다.
*/
stack.push("홍길동");
stack.push("일지매");
stack.push("변학도");
stack.push("강감찬");
System.out.println("현재 stack값들: " + stack);
String data = stack.pop();
System.out.println("꺼내온 자료: " + data); //마지막에 넣은 것이 나옴
System.out.println("꺼내온 자료: " + stack.pop());
System.out.println("현재 stack값들 :" + stack);
stack.push("성춘향");
System.out.println("현재 stack값들: " + stack);
System.out.println("꺼내온 자료: " + stack.pop()); //마지막에 넣은 것이 나옴
System.out.println("============================================");
System.out.println();
LinkedList<String> queue = new LinkedList<String>();
/*
* Queue의 명령
* 1) 자료입력 : offer(저장할 값)
* 2) 자료출력 : poll() => 자료를 Queue에서 꺼내온 후 꺼내온 자료를 Queue에서 삭제한다.
*/
queue.offer("홍길동");
queue.offer("일지매");
queue.offer("변학도");
queue.offer("강감찬");
System.out.println("현재 queue의 값: " + queue);
String temp = queue.poll();
System.out.println("꺼내온 자료: " + temp); //가장 먼저 넣은 것
System.out.println("꺼내온 자료: " + queue.poll()); //2번째로 넣은 것
System.out.println("현재 queue의 값 : " + queue); //2개를 꺼내 2개 남음
if (queue.offer("성춘향")) {
System.out.println("신규 등록 자료: 성춘향");
}
System.out.println("현재 queue의 값 :" + queue);
System.out.println("꺼내온 자료 : " + queue.poll()); //가장 먼저 넣은것
}
}
'고급JAVA' 카테고리의 다른 글
Hashset (0) | 2022.07.23 |
---|---|
Comparable / Comparator (0) | 2022.07.23 |
ArrayList (0) | 2022.07.23 |
고급자바 D2 (0) | 2022.07.22 |
고급자바 D1 List , Stack , Queue (0) | 2022.07.20 |