>Java >java지도 시간 >Java 스택 클래스 사용 예(Java에서 스택을 사용하는 방법)

Java 스택 클래스 사용 예(Java에서 스택을 사용하는 방법)

高洛峰
高洛峰원래의
2017-01-24 15:00:091433검색

JAVA에서는 java.util.Stack 클래스의 생성자 메소드를 사용하여 객체를 생성합니다.

public class Stack은 벡터를 확장합니다.

생성자: public Stack()은 빈 스택을 생성합니다.

방법: 1. 공개 푸시(항목) 항목을 스택의 맨 위로 밀어 넣습니다. 그 효과는 addElement(항목)과 동일합니다.

매개변수 항목은 스택 맨 위로 푸시되는 항목입니다. 반환: 항목 매개변수

2. public pop()은 스택에서 최상위 개체를 제거하고 해당 개체를 함수의 값으로 반환합니다.

반환: 스택의 최상위 개체(Vector 개체의 마지막 항목).

스택이 비어 있는 경우 예외 발생:EmptyStackException. . .

3. public peek() 스택 위에 있는 객체를 제거하지 않고 봅니다. .

반환: 스택의 최상위 개체(벡터 개체의 마지막 항목)

스택이 비어 있는 경우 예외 발생:EmptyStackException. . .

4. public boolean 비어 있음(스택이 비어 있는지 테스트합니다.) 스택에 항목이 없는 경우에만 true를 반환하고, 그렇지 않으면 false를 반환합니다.

5. 객체 o) 1을 기준으로 스택의 객체 위치를 반환합니다. 객체 o가 스택의 항목인 경우 이 메서드는 가장 가까운 발생 위치에서 스택 상단까지의 거리를 반환합니다. 스택의 최상위 항목은 1입니다. o를 스택에 있는 항목과 비교하려면 equals 메서드를 사용하세요. . .

매개변수: o 대상 객체;

/** 
 * @author yuanLi
 */
package thinkingJava;
import java.util.*;

import com.sun.org.apache.bcel.internal.generic.NEW;
/** 
 * 
 */
public class StackTest {

    /**
     * @param args
     */
    public static void main(String[] args) {
        Stack stack = new Stack(); // 创建堆栈对象 
        System.out.println("11111, absdder, 29999.3 三个元素入栈"); 
        stack.push(new Integer(11111)); //向 栈中 压入整数 11111
        printStack(stack);  //显示栈中的所有元素

        stack.push("absdder"); //向 栈中 压入
        printStack(stack);  //显示栈中的所有元素

        stack.push(new Double(29999.3)); //向 栈中 压入
        printStack(stack);  //显示栈中的所有元素

        String s = new String("absdder");
        System.out.println("元素absdder在堆栈的位置"+stack.search(s));      
        System.out.println("元素11111在堆栈的位置"+stack.search(11111));

        System.out.println("11111, absdder, 29999.3 三个元素出栈"); //弹出 栈顶元素 
        System.out.println("元素"+stack.pop()+"出栈");
        printStack(stack);  //显示栈中的所有元素
        System.out.println("元素"+stack.pop()+"出栈");
        printStack(stack);  //显示栈中的所有元素
        System.out.println("元素"+stack.pop()+"出栈");
        printStack(stack);  //显示栈中的所有元素

 
    }

    private static void printStack(Stack<Integer> stack ){
        if (stack.empty())
            System.out.println("堆栈是空的,没有元素");
            else {
                System.out.print("堆栈中的元素:");
                Enumeration items = stack.elements(); // 得到 stack 中的枚举对象 
                while (items.hasMoreElements()) //显示枚举(stack ) 中的所有元素
                    System.out.print(items.nextElement()+" ");
            }
        System.out.println(); //换行
    }
}

더 많은 Java 스택 클래스 사용 예(Java에서 스택 사용 방법) 관련 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.