【发布时间】:2014-11-24 12:34:26
【问题描述】:
我正在尝试创建一个通用方法来使用队列在堆栈中搜索元素“e”并将堆栈返回到其原始状态。
但是当我调用方法“searchStacks”时,我不断收到错误“SearchStack 类型中的方法 searchStacks(Stack, E) 不适用于参数 (Stack, String)”
请帮忙,提前谢谢你。
import java.util.Stack;
import java.util.Stack.* ;
public class SearchStack<E> extends Object {
public static void main (String [] args ) {
Stack < String > test = new Stack () ;
for (int i = 0 ; i < 5 ; i ++ ) {
test.push("a" + i ) ; }
System.out.println (test.toString()) ;
System.out.println ( searchingStacks (test , "a3") ) ;
}
public boolean searchingStacks (Stack<E> s1 , E e) {
boolean result = false ;
Queue <E> temp = new LinkedQueue () ;
while (s1.isEmpty() == false )
{
if (s1.peek() == e ) { result = true ; }
temp.enqueue(s1.pop());
}
while (temp.isEmpty() == false ){
s1.push( temp.dequeue() ) ;
}
while (! s1.isEmpty() ) { temp.enqueue(s1.pop());}
while (! temp.isEmpty() ) { s1.push(temp.dequeue()) ; }
return result ;}
}
【问题讨论】:
-
您似乎在方法声明中缺少泛型类型。尝试将
public boolean searchingStacks (Stack<E> s1 , E e)更改为public <E> boolean searchingStacks (Stack<E> s1 , E e)