Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 优先级队列对除最后一个项目外的所有项目进行排序_Java_Priority Queue - Fatal编程技术网

Java 优先级队列对除最后一个项目外的所有项目进行排序

Java 优先级队列对除最后一个项目外的所有项目进行排序,java,priority-queue,Java,Priority Queue,这部分返回所需的所有内容。除了最后一个,我都买了 /* INPUT Greenland Denmark Iceland Finland Sweden Norway */ 你的问题在于: pQueArray[j+1]=项目 这表示您正在将最新的项目添加到队列的最后一个位置,只有在您完成了比较其余元素的处理之后。为什么不使用java的priority queue()和自定义比较器?我强烈建议您自己学习如何调试它,因为它将带来长期的好处。在分配给pQueArray[…]的两种情况下,打印队列发生的情

这部分返回所需的所有内容。除了最后一个,我都买了

/* INPUT
Greenland
Denmark
Iceland
Finland
Sweden
Norway
*/

你的问题在于:

pQueArray[j+1]=项目


这表示您正在将最新的项目添加到队列的最后一个位置,只有在您完成了比较其余元素的处理之后。

为什么不使用java的priority queue()和自定义比较器?我强烈建议您自己学习如何调试它,因为它将带来长期的好处。在分配给pQueArray[…]的两种情况下,打印队列发生的情况。您将很快发现错误所在。
public void insert(Country item){
      System.out.println("Item receieved by pQueue: " + item.getCountryName());
      int j;
      if (nItems==0)
          pQueArray[nItems++] = item;
      else{
         for (j=nItems-1; j>=0; --j)
            if (item.getCountryName().compareTo(pQueArray[j].getCountryName()) < 0 )
               pQueArray[j+1] = pQueArray[j];
            else
               break;
         // end for
         pQueArray[j+1] = item;                                          
         nItems++;  
      }  // end else
}  // end insert()
/* OUTPUT
Denmark
Finland
Greenland
Iceland``
Sweden
Norway */