2014-10-27 76 views
0

我打印出一個隊列,然後我調用firstToLast方法並再次打印。然後,我調用lastToFirst方法並再次打印。我希望所有三行輸出看起來不錯,整齊,從左到右打印。第一行是這樣,但第二行和第三行輸出從上到下打印。如何讓所有三行輸出以相同的方式打印。如何從左到右打印輸出的所有行?

public class QueueNodeRunner 
{ 
    public static void main(String[] args) 
    { 
     QueueNode list = new QueueNode(); 
     list.enQueue("a"); 
     list.enQueue("b"); 
     list.enQueue("c"); 
     list.enQueue("d"); 
     list.enQueue("e"); 
     list.enQueue("f"); 
     list.enQueue("g"); 
     list.enQueue("h"); 
     list.enQueue("i"); 
     list.enQueue("j"); 
     QueueListIterator iter = list.listIterator(); 
     System.out.println("Elements in Queue: "); 
     while (iter.hasNext()) 
     { 
     Object s = iter.next(); 
     System.out.print(" " + s.toString()); 
     } 
     list.firstToLast(); 
     System.out.print("\n" + list); 
     list.lastToFirst(); 
     System.out.print("\n" + list); 
    } 
}  

這裏是我的輸出:

Elements in Queue: 
a b c d e f g h i j 
b 
c 
d 
e 
f 
g 
h 
i 
j 
a 

a 
b 
c 
d 
e 
f 
g 
h 
i 
j 

----jGRASP: operation complete. 

謝謝!

+1

刪除System.out.print方法中的\ n – PaulG 2014-10-27 20:43:52

回答

1

繼續使用

while (iter.hasNext()) 
    { 
     Object s = iter.next(); 
     System.out.print(" " + s.toString()); 
    } 

要打印列表,而不是使用toString()打印方法的(你System.out.print()方法內隱式調用)。

+0

到目前爲止沒有什麼不同。 – Dustin 2014-10-27 20:56:33

+2

爲了達到這個目的,我相信你需要重新定義迭代器。在這一點上,我會寫一個將QueueNode作爲參數的方法,然後檢索迭代器並將它們打印在一行上。然後你可以調用這個方法3次。 – 2014-10-27 20:57:12