以相反顺序打印任何collections中的项目?

我在使用Java book的数据结构和问题解决中遇到以下问题:

编写一个使用Collections API以相反顺序打印任何Collection中的项目的例程。 不要使用ListIterator。

我不是把它放在这里,因为我希望有人做我的作业,我似乎无法理解它要求我编码的确切内容!

当它要求我写一个’例程’时,它是否在寻找一种方法? 我真的不明白如何使单个方法适用于所有各种类型的集合(链表,队列,堆栈)。

如果有人能指导我朝正确的方向发展,我将不胜感激。

无论问题没有多大意义,因为一半的集合没有固定排序的gstable排序(即TreeSet或PriorityQueue),您可以使用以下语句以反向自然的顺序打印集合的内容:

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

我本质上是创建一个数组列表,因为列表是唯一可以任意重新排序的结构。 您将src集合传递给构造函数,该构造函数使用集合自然顺序中的src内容初始化列表。 然后将列表传递给Collections.reverse()方法,该方法反转列表,最后打印出来。

首先,我相信它要求你写一个方法。 喜欢:

 void printReverseList(Collection col) {} 

然后有很多方法可以做到这一点。 例如,仅使用Collection API,使用toArray方法并使用for循环从末尾打印出所有项目。 合理?

对于使用Collection接口的各种类,它将自动适用于所有这些类,因为它们必须实现接口(前提是它们以理智的方式实现它;)。

那么你可以有一个基于输入类型委托给其他例程的例程,但是我不确定是否有足够通用的集合类型可以包含在一个参数中。 我想你可以只使用方法重载(有多个同名的方法,但接受不同的args)。

这在技术上可以算作1个例程(都具有相同的名称)。

是不是有基础Collection类?

可能值得在这里寻找起点……

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html

我不太了解Java,但考虑到“Collections API”,我想所有这些对象都实现了一个可以迭代的接口。 我想他们都可以使用itemAtIndex(int index)和length()或类似的方法。

你可能想读这个。