ホームページ  >  記事  >  Java  >  Java の改善 (三義)-----スタック

Java の改善 (三義)-----スタック

黄舟
黄舟オリジナル
2017-02-11 10:17:221465ブラウズ

Java では、Stack クラスは後入れ先出し (LIFO) オブジェクト スタックを表します。スタックは、一般的な先入れ後出し操作を使用して実装される非常に一般的なデータ構造です。各スタックにはスタックのトップが含まれており、スタックがポップされるたびに、次のようにスタックのトップのデータが取り出されます。スタックとして扱われます。 5 つの操作は次のとおりです。


説明

<td valign="top" width="163">peek<p style="text-align:center;">()<span style="font-size:14px;"><code><strong>empty</strong>()

<strong>empty<span style="color:#0000ff;">()</span></strong> スタックが空かどうかをテストします。

测试堆栈是否为空。

<strong>peek</strong>()

查看堆栈顶部的对象,但不从堆栈中移除它。

<strong>pop</strong>()

移除堆栈顶部的对象,并作为此函数的值返回该对象。

<strong>push</strong>(E item)

把项压入堆栈顶部。

<strong>search</strong>(Object o)

スタックから削除せずに、スタックの一番上にあるオブジェクトを確認します。

<p>pop<span style="font-size:14px;">()</span></p>

スタックの一番上のオブジェクトを削除し、それをこの関数の値として返します。

<p>push<span style="font-size:14px;">(E item)</span></p>

アイテムをスタックの一番上にプッシュします。


search🎜(Object o)🎜🎜🎜🎜🎜🎜スタック内のオブジェクトの位置を基数 1 で返します。 🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜Stack は Vector を継承し、Vector の単純な拡張を作成します: 🎜🎜🎜🎜🎜🎜
public class Stack<E> extends Vector<E>
🎜🎜🎜 🎜Stack の実装は非常に単純で、構築メソッドが 1 つだけ、実装メソッドが 5 つだけあります (継承されたメソッドVector のソース コードは含まれていません)、実装のソース コードは非常にシンプルです🎜🎜🎜🎜🎜🎜
/**
     * 构造函数
     */
    public Stack() {
    }

    /**
     *  push函数:将元素存入栈顶
     */
    public E push(E item) {
        // 将元素存入栈顶。
        // addElement()的实现在Vector.java中
        addElement(item);

        return item;
    }

    /**
     * pop函数:返回栈顶元素,并将其从栈中删除
     */
    public synchronized E pop() {
        E    obj;
        int    len = size();

        obj = peek();
        // 删除栈顶元素,removeElementAt()的实现在Vector.java中
        removeElementAt(len - 1);

        return obj;
    }

    /**
     * peek函数:返回栈顶元素,不执行删除操作
     */
    public synchronized E peek() {
        int    len = size();

        if (len == 0)
            throw new EmptyStackException();
        // 返回栈顶元素,elementAt()具体实现在Vector.java中
        return elementAt(len - 1);
    }

    /**
     * 栈是否为空
     */
    public boolean empty() {
        return size() == 0;
    }

    /**
     *  查找“元素o”在栈中的位置:由栈底向栈顶方向数
     */
    public synchronized int search(Object o) {
        // 获取元素索引,elementAt()具体实现在Vector.java中
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }
🎜🎜🎜🎜🎜🎜🎜上記は Java 改善記事 (Sanyi)-----スタック 詳細についてはコンテンツについては、PHP 中国語 Web サイト (www.php.cn) にご注意ください。 🎜🎜🎜🎜🎜🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。