我想使用ArrayList
来表示优先级队列。所以我想在ArrayList
的特定位置添加项目。但是,当我运行它,系统告诉我Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 10, Size: 0.
线程“main”java.lang.IndexOutOfBoundsException中的异常:索引:10,大小:0 JAVA
public class PriorityQueue
{
public ArrayList<String> Queue=new ArrayList<>();
public void enqueu(String s, int p)
{
Queue.add(p,s);
}
public void dequeu()
{
String temp=Queue.get(Queue.size()-1);
Queue.remove(temp);
}
public void print()
{
String[] print=new String[Queue.size()];
print=Queue.toArray(print);
for(int i=0;i<Queue.size();i++)
{
System.out.println(print[i]);
}
}
public static void main(String[] args)
{
PriorityQueue test= new PriorityQueue();
test.enqueu("x",10);
test.enqueu("Y",1);
test.enqueu("Z",3);
test.print();
}}
你做了什么调试? https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ –
如果这个应该是一个Queue,那么'enqueue'就没有任何意义,因为'enqueue'在最后添加'Queue'不在任意索引处。既然你叫你优先级队列,我假设你的'enqueue'方法的第二个参数是元素的优先级,而不是它的索引。你应该阅读一些队列。 –