2008-10-13 86 views
7

我在數據結構與問題使用Java書解決以下問題:以相反順序打印任何集合中的項目?

編寫使用集合API中以相反的順序任何集合打印出來的物品的程序。不要使用ListIterator。

我沒有把它放在這裏,因爲我想要有人做我的功課,我似乎無法完全理解它是什麼要求我編碼!

當它要求我寫一個'例程'時,它是在尋找一種方法嗎?我真的不知道如何爲所有不同類型的集合(鏈接列表,隊列,堆棧)創建單一方法。

如果有人能指引我走向正確的方向,我將不勝感激。

回答

18
從問題

不管賺不了多少意義,因爲藏品有一半的有固定順序沒有gstable排序(即TreeSet的或PriorityQueue中),可以使用下面的語句用於打印的內容收集反自然的順序:

List temp = new ArrayList(src); 
Collections.reverse(temp); 
System.out.println(temp); 

我本質上創建一個數組列表,列表是可以任意重新排序的唯一結構。您將src集合傳遞給構造函數,該構造函數以集合自然順序將列表中的內容初始化爲src的內容。然後,您將該列表傳遞給集合。reverse()方法顛倒列表並最終打印它。

0

那麼你可以有一個例程,基於輸入類型委託給其他例程,但是我不確定是否有足夠通用的集合類型可以包含在一個參數中。我想你可以使用方法重載(具有多個同名的方法,但接受不同的參數)。

這在技術上可以算作1例程(都具有相同的名稱)。

2

首先,我相信它是要求你寫一個方法。像:

void printReverseList(Collection col) {} 

然後有很多方法可以做到這一點。例如,只使用Collection API,使用toArray方法並使用for循環從最後打印出所有項目。合理?

對於使用Collection接口的各種類,它將自動適用於所有這些類,因爲它們必須實現接口(只要它們以一種理智的方式實現它;)。

+0

非常感謝你的想法 – VeePee 2008-10-13 04:24:33

+0

沒有問題 - 祝你好運。 – AdamC 2008-10-13 17:03:34

0

我不知道太多的Java,但考慮到「集合API」我想所有這些對象實現一個接口,你可以遍歷通過某種途徑。我想他們都可以有一個itemAtIndex(int index)和length()或類似的方法,你可以使用。

You might want to read this.

相關問題