자바기초(Stack 과 Queue)

bitna's study note·2022년 5월 16일
0

자바

목록 보기
83/119

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());
		
	}

}
profile
좋은개발자가 되기위한 삽질기록 노트

0개의 댓글

관련 채용 정보