LIFO(Last In First Out) 형식의 자료구조
LIFO: 한 쪽 끝에서만 자료를 넣거나 빼는 것
삽입/삭제: O(1)
검색: O(n)
stack은 vector를 상속받으므로써 구현된다
push: 상속받은 vector에 존재하는 Object리스트에 값을 추가하는 메소드
pop: stack에서 가장 최근에 push한 값을 빼는 메소드
peek: stack에서 가장 위에 있는 값을 보여주는 메소드
이 외에는 serach(), empty()같은 메소드들이 존재한다.
여기서 주의깊게 봐야할 점은 pop(), peek(), search()에 모두 synchronized가 붙어있다는 것이다!
stack이 상속하는 vector를 확인해보면, 우리가 왜 stack이 쓰이지 않는지 알 수 있다.
vector의 문제점
get()이나 set()이 사용되는 메소드 외에도 여러 메소드에 synchronized 키워드가 붙는다
이게 왜 문제일까?