LIFO : Last In First Out
LinkedList<String> stack = new LinkedList<>();
stack.push("홍길동");
stack.push("일지매");
stack.push("강감찬");
stack.push("변학도");
//제일 먼저 들어간 데이터가 아래부터 채워지기 때문에 출력시 최근 데이터가 0번 인덱스
System.out.println("현재 stack값 : " + stack);
//현재 stack값 : [변학도, 강감찬, 일지매, 홍길동]
String data = stack.pop();
System.out.println("꺼내온 값 : " + data);
System.out.println("꺼내온 값 : " + stack.pop());
//꺼내온 값 : 변학도
//꺼내온 값 : 강감찬
System.out.println("현재 stack값 : " + stack);
//현재 stack값 : [일지매, 홍길동]
stack.push("성춘향");
System.out.println("추가 후 stack값 : " + stack);
//추가 후 stack값 : [성춘향, 일지매, 홍길동]
System.out.println("꺼내온 값 : " + stack.pop());
//꺼내온 값 : 성춘향
System.out.println("삭제없이 꺼내온 값 : " + stack.peek());
System.out.println("현재 stack 값 : " + stack);
//삭제없이 꺼내온 값 : 일지매
//현재 stack 값 : [일지매, 홍길동]
LinkedList<String> queue = new LinkedList<>();
queue.offer("홍길동");
queue.offer("일지매");
queue.offer("강감찬");
queue.offer("변학도");
System.out.println("현재 queue값 : " + queue);
//현재 queue값 : [홍길동, 일지매, 강감찬, 변학도]
String temp = queue.poll();
System.out.println("꺼내온 값 : " + temp);
System.out.println("꺼내온 값 : " + queue.poll());
System.out.println("현재 queue값 : " + queue);
//꺼내온 값 : 홍길동
//꺼내온 값 : 일지매
//현재 queue값 : [강감찬, 변학도]
queue.offer("성춘향");
System.out.println("현재 queue값 : " + queue);
//현재 queue값 : [강감찬, 변학도, 성춘향]
System.out.println("꺼내온 값 : " + queue.poll());
System.out.println("현재 queue값 : " + queue);
//꺼내온 값 : 강감찬
//현재 queue값 : [변학도, 성춘향]
System.out.println("삭제 없이 꺼내온 값 : " + queue.peek());
System.out.println("현재 queue값 : " + queue);
//삭제 없이 꺼내온 값 : 변학도
//현재 queue값 : [변학도, 성춘향]