2011-12-03 9 views
-1

私は独自のStackクラスを作成しましたが、args内で渡されるインデックスに基づいてスタック要素を返すgetメソッドを実装する必要があります。私はcontainsメソッドを作成していますが、getは同様の方法で動作します。Stack getメソッドの実装

私の質問は、どうすればgetメソッドを実装するのですか?基本的にStackがVectorクラスから継承するgetメソッドを標準ライブラリに実装したいと考えています。 -http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Vector.html#get%28int%29

を参照してください。

public boolean contains (T value){ 

    T t = top.item; 
    Object node = t; 
    while(node!=null) 
    { 
     if(node==value){ 
      return true; 
     } 
     else { 
      node=top.next; 
     } 
    } 
    return false; 
} 
+2

何が質問ですか? –

+0

質問は何ですか?はい、同じ方法で動作しますか? – havexz

+0

インデックス引数は何をしますか?スタックの深さを指定しますか?トップから数える?いずれにせよ、それは珍しいスタックです。通常は、/ pop/peekを押すだけです。 – Thilo

答えて

1

古典的なスタックはその操作をサポートしておらず、本当にベクターを拡張してはいけません。

それがサポートしている操作は次のとおりです。あなたがあなたのスタックをバックアップするためのデータ構造を使用したい場合は

push(item) 
pop(); 
peek(); 

だから、あなたが何をしたいのか、にあなたをできるようになりますリストのインスタンスを使用することですSunの元チームが何をしたかを反映しています。あなたはちょうどあなたが配列の各値を反復し、それに比較を等しく実行する必要があるだろうバッキングとして配列を使用する代わりに、場合

function contains(Item item) 
{ 
    return Stack.getList().contains(item) 
} 

function contains(Item item) 
{ 
    for(int i = 0; i < itemArray.length;i++) 
    { 
     if(itemArray[i] == item) 
     { 
      return true;  
     } 
    } 
     return false; 
} 
関連する問題