5월 16일 내용정리
1.Stack은 팬케익을 차곡 차곡 쌓아올린 것과 비슷한 모양새
Vector 클래스를 상속
LIFO(Last In First Out)
Vector클래스 기본메서드 +(push, peek, pop, search, empty)
search메서드는 제일 위에 위치하는 것을 1로 처리한다.
Stack의 인덱스는 in순서대로(예 1->2->3) 번호를 매기고, 출력은 out 순서대로(예 3->2->1)
2.Queue
Queue인터페이스로 구성
Collection<E>:인터페이스
|
구현
|
Queue<E>:인터페이스
|
상속
|
LinkedList<E>:클래스
먼저 들어간 데이터 먼저나오는 FIFO(First In First Out) 구조
사람들이 한줄서기 하는 모습과 비슷한 모습으로 하고있음.
줄서있다 자기차례되면 볼일보고 다시 줄서있던가 아예나가던가
추가 데이터꺼내기
add() remove()
offer() ------------------- poll()
입구 ------------------- 출구
element()
peek()
3.add(),remove(),element():데이터가 없으면 예외발생(예외처리기능 포함하지 않은 메서드)
offer(),poll(),peek():데이터가 없는 경우 기본값(null)출력(예외처리 기능 포함하고 있는 메서드)
add(E item) : 추가
remove() : 꺼내기
element() : 가장 상위에 있는 원소 값 반환(꺼내올 자료 확인)
offer(E item) : 추가
poll() : 데이터 꺼내기, 없으면 null 반환
peek() : 가장 상위에 있는 원소 값 반환(꺼내올 자료 확인), 데이터가 없으면 null 반환
package study_0513;
import java.util.*;
public class StackQueue {
public static void main(String[] args) {
Stack<String> myStack = new Stack<>();
myStack.push("바나나");
myStack.push("딸기");
myStack.push("복숭아");
myStack.push("포도");
System.out.println(myStack.peek()); //제일 위에 위치하는것, 즉 마지막으로 들어간 데이터 확인
System.out.println(myStack.search("딸기")); //3 ->꺼낼때 3번째로 꺼낼수 있어
System.out.println(myStack.pop()); //꺼내고 메모리에서 사라짐
System.out.println(myStack.empty());//스택이 비어 있는지 확인하기
Queue<String> myqueue = new LinkedList<String>();
System.out.println(myqueue.peek());
myqueue.add("바나나");
myqueue.add("딸기");
System.out.println(myqueue.element());
}
}