2008-10-13 93 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.

相关问题