我正在使用Arrays.sort
方法对我自己的Comparable
个对象进行排序。在我使用sort之前,数组已满,但在我对数组进行排序并将其打印到System之后,没有任何内容正在打印出来。编辑。阵列什么都不打印。不是空行,只是没有。
这是我的方法的代码,它使用sort
:
public LinkedQueue<Print> arraySort(LinkedQueue<Print> queue1)
{
Print[] thing = new Print[queue1.size()];
LinkedQueue<Print> newQueue = new LinkedQueue<Print>();
for(int i = 0; i <queue1.size(); i++)
{
Print ob = queue1.dequeue();
thing[i] = ob;
System.out.println(thing[i]); //printing works here
}
Arrays.sort(thing);
for(int j = 0;j<thing.length-1;j++)
{
System.out.println(thing[j]); //printing does not work here
newQueue.enqueue(thing[j]);
}
return newQueue;
}
这里是名为Comparable
的{{1}}对象的类。
Print
答案 0 :(得分:1)
您的上一个for
循环不会打印数组中的最后一个元素。如果数组只有一个元素,它根本不会打印任何内容。改为:
for (int j = 0; j < thing.length; j++) //clean code uses spaces liberally :)
{
System.out.println(thing[j]);
newQueue.enqueue(thing[j]);
}
或(如果使用JDK / JRE版本支持):
for (Print p : thing)
{
System.out.println(p);
newQueue.enqueue(p);
}
答案 1 :(得分:-1)
我希望问题是代码的这一部分
for(int i = 0; i <queue1.size(); i++)
{
Print ob = queue1.dequeue();
thing[i] = ob;
System.out.println(thing[i]); //printing works here
}
用
替换上面的内容for(int i = 0; !queue1.isEmpty() ; i++)
{
Print ob = queue1.dequeue();
thing[i] = ob;
System.out.println(thing[i]); //printing works here
}