这是我的班级,我想对我的堆栈进行排序,但它会抛出异常,请帮助我谢谢!
public class jj {
public static void main(String[] args){
Stack<Integer> s = new ImplimentingAStackUsingAnArrayOfAGivenSizeN(5);
s.push(1);
s.push(3);
s.push(5);
s.push(2);
s.push(4);
Collections.sort((List<Integer>) (s));
System.out.println(s);
while (!s.isEmpty()) {
System.out.println(s.pop());
}
}
}
堆栈跟踪:
Exception in thread "main" java.lang.ClassCastException:
datastructurechapter5.ImplimentingAStackUsingAnArrayOfAGivenSizeN
cannot be cast to java.util.List at datastructurechapter5.jj.main(jj.java:24)
`Collections.sort((List<Integer>) (s));`
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)
答案 0 :(得分:5)
我假设你正在使用(和扩展)错误的Stack
。确保你有
import java.util.Stack;
如果Stack
属于您的某类,则必须将其定义为弹性List
:
public class Stack implements List {..}
但这需要做很多工作,所以请使用java.util.Stack
注意:正如Jesper评论的那样,您最好使用java.util.Deque
(也许ArrayDeque
)