实现Stack get方法

时间:2011-12-03 01:40:41

标签: java data-structures stack

我已经创建了自己的Stack类,但是需要实现一个get方法来根据args中传递的索引返回一个堆栈元素。我已经创建了一个contains方法,并且假设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;
}

1 个答案:

答案 0 :(得分:1)

经典Stack不支持该操作,并且真的不应该扩展Vector。

它支持的操作是:

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

所以你想要做的是,如果你想使用数据结构来支持你的堆栈就是使用List的一个实例来允许你镜像原来的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;
}