Stack

U·2022년 9월 1일
0

Java

목록 보기
1/4

Stack이란?

  • LIFO(Last in First Out) : 저장된 데이터 중 가장 마지막 데이터만 접근 가능함
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
Stack<String> stack = new Stack<>();
  
stack.push(1); // stack에 값 1 추가
stack.push(2);
stack.pop(); // stack의 가장 위쪽에 있는 값 제거
stack.clear(); // stack의 모든 값 제거
stack.peek(); // stack의 가장 상단 값 출력

💡 peek와 pop의 차이는? 값 제거와 관련이 있다

  • peek : 단지 출력
  • pop : 값을 내보내면서 출력 (But 실제로는 데이터가 남아있음)

how to use?🙄

stack.size(); // stack의 크기 구하기
stack.get(1); // stack의 index 1 값 호출
stack.empty(); // stack 비어있는지 확인 (비어있으면 true, 그렇지 않으면 false)
stack.contains(1); // stack에 1이 있는지 search
stack.indeOf(2); // 2가 어느 stack에 있는지 index 반환
  
stack.firstElement(); // stack의 맨 처음 input 값
stack.lastElement(); // (=peek) stack의 맨 마지막 input 값
// peek()은 empty() 상태일 때 EmptyStackException 에러
// lastElement()은 empty() 상태일 때 NoSuchElementException 에러
  
Stack st = new Stack(); // 타입 설정x -> Object로 사용
Stack<StackDemo> demo = new Stack<StackDemo>();
// class(StackDemo) 타입으로 선언
Stack<Integer> i = new Stack<Integer>();
Stack<Integer> ii = new Stack<>(); // 타입 생략 가능
  • pop() 하고 난 자리는 null로 설정
  • remove()를 하면 우리 눈에는 삭제되는 것처럼 보이지만 실제로는 데이터가 남아있음
  • pop()을 하면 내보내서 삭제된 것처럼 보이지만 remove()를 했기 때문에 실제로는 데이터가 남아있다.
profile
백엔드 개발자 연습생

0개의 댓글