Java 如何在不使用其他数据结构的情况下输出2个队列的排序数?

Java 如何在不使用其他数据结构的情况下输出2个队列的排序数?,java,sorting,Java,Sorting,我不知道这是否可行,但: 假设我们有两个队列:queue1和queue2,每个队列都包含从最小到最大排序的(自然)数(queue1.head()和queue2.head()返回queue1/queue2的最小值) 如何在不使用其他数据结构的情况下以排序(从最低到最高)的顺序输出队列1和队列2中包含的数字?如下所示: while (!queue1.isEmpty() || !queue2.isEmpty()) { if (queue1.isEmpty()) { Syst

我不知道这是否可行,但:

假设我们有两个队列:queue1和queue2,每个队列都包含从最小到最大排序的(自然)数(queue1.head()和queue2.head()返回queue1/queue2的最小值)

如何在不使用其他数据结构的情况下以排序(从最低到最高)的顺序输出队列1和队列2中包含的数字?

如下所示:

while (!queue1.isEmpty() || !queue2.isEmpty()) {
     if (queue1.isEmpty()) {
         System.out.println(queue2.remove());
     } else if (queue2.isEmpty()) {
         System.out.println(queue1.remove());
     } else if (queue1.peek() < queue2.peek()) {
         System.out.println(queue1.remove());
     } else {
         System.out.println(queue2.remove());
     }
}
while(!queue1.isEmpty()| |!queue2.isEmpty()){
if(queue1.isEmpty()){
System.out.println(queue2.remove());
}else if(queue2.isEmpty()){
System.out.println(queue1.remove());
}else if(queue1.peek()

首先,当其中一个队列为空时,需要采取这种情况,然后从另一个队列输出。然后你偷看两个,比较它们,取最小的。执行此操作直到两个队列都为空。

如果您不介意在第一个队列中添加内容:

queue1.addAll(queue2);
queue1.stream().sorted(Integer::compare).forEach(System.out::println);
谷歌(“合并排序”)