这是我的类(class),我想对我的堆栈进行排序,但它会抛出异常,请帮助我,谢谢!
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)
最佳答案
我假设您正在使用(和扩展)错误的 Stack
。确保你有
import java.util.Stack;
如果 Stack
是你的某个类,你必须定义它来实现 List
:
public class Stack implements List {..}
但这会是很多工作,所以使用 java.util.Stack
注意:正如 Jesper 所说,您最好使用 java.util.Deque
(可能是 ArrayDeque
)
关于java - 为什么会抛出 java.lang.classCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3031583/