
[Java, Stack] 왜 Stack이 아닌 Deque로 스택을 구현해야 할까?
·
Backend/Java
Stack 클래스가 상속하고 있는 Vector가 문제가 되기 때문에 Deque 사용을 권장한다. ❌ Stack stack = new Stack();⭕ Deque stack = new ArrayDeque(); Vector는 자바 버전 1부터 있었던 굉장히 오래된 클래스이기 때문에 여러모로 취약점이 많다. 1️⃣Stack은 Vector를 상속받아 구현되어 있다.상속으로 부모 메서드를 공유하기 때문에 Stack을 사용자가 잘못되게 사용할 수 있는 문제가 발생한다.Vector에는 원하는 index에 객체를 끼워 넣을 수 있는 insertElementAt이라는 메서드가 존재한다.문제는 Stack이 Vector를 상속받았기 때문에 insertElementAt 사용이 가능하다는 점이다.후입 선출이 보장되어야 하..