English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

java8 집합의 Stack 설명 및 예제

java의 컬렉션 중 스택

요약:

스택(Stack)은 선입후출(FILO, First In Last Out) 원리를 가진 데이터 구조입니다. 스택은 벡터(VECTOR)를 상속받아 만들어졌으며, 벡터가 배열로 구현되어 있기 때문에 스택도 배열을 통해而非 연결리스트로 구현됩니다.

Stack와 Collection의 관계는 다음과 같습니다:

Java 기반8의 소스 코드:

public class Stack<E> extends Vector<E> {
  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;
  }
  //시리얼 버전 번호
  private static final long serialVersionUID = 1224463164541339165L;
}

읽어주셔서 감사합니다. 여러분의 도움이 되길 바랍니다. 여러분의 사이트 지원에 감사합니다!

추천 항목