我已经创建了自己的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;
}
答案 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;
}