7

我的数据结构和使用 Java 解决问题一书中有以下问题:

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

我没有把它放在这里,因为我希望有人做我的作业,我似乎无法准确理解它要求我编写什么代码!

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

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

4

5 回答 5

17

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

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

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

于 2008-10-13T03:32:06.540 回答
2

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

void printReverseList(Collection col) {}

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

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

于 2008-10-13T03:29:40.977 回答
0

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

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

于 2008-10-13T03:24:18.023 回答
0

没有基础 Collection 类吗?

可能值得在这里作为起点:Collections

于 2008-10-13T03:30:19.290 回答
0

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

你可能想读这个。

于 2008-10-13T03:30:48.057 回答