이 글은 Java에서 스택의 사용법을 소개합니다(코드 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.
Java의 Stack은 초기 레거시 클래스입니다. Sun/Oracle에서는 더 이상 사용되지 않으며 이제 레거시 코드와의 호환성을 위해서만 예약되어 있습니다.
레거시 구현
# 🎜🎜#아래 코드에서 볼 수 있듯이 java.util.Stack의 구현은 동적 배열을 기반으로 하며 Vector도 버려진 클래스입니다. 개인적으로 이 구현에는 두 가지 문제가 있습니다벡터 기준으로 동기화가 필요하고 성능 손실이 심각합니다여기서 스택은 데코레이터입니다.
public class Stack<E> extends Vector<E> { /** * Creates an empty Stack. */ public Stack() { } public E push(E item) { addElement(item); return item; } public synchronized E pop() { E obj; int len = size(); obj = peek(); removeElementAt(len - 1); return obj; } public synchronized E peek() { int len = size(); if (len == 0) throw new EmptyStackException(); return elementAt(len - 1); } public boolean empty() { return size() == 0; } public synchronized int search(Object o) { int i = lastIndexOf(o); if (i >= 0) { return size() - i; } return -1; } /** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = 1224463164541339165L; }
이 기사는 여기서 끝났습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의
Java 비디오 튜토리얼칼럼을 주목하세요!
위 내용은 Java의 스택 사용법 소개(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!