2014-09-26 69 views
0

我很困惑,与我的家庭作业的要求。任何帮助表示赞赏。实现一类物品堆,而不用导入内置堆栈

它说:“创建一个新的类,在一个名为ImageStack.java的单独的文件中。该类必须实现一堆对象(其类型是您需要弄清楚的),并且您不能导入内置Stack类,而是您将利用ArrayList类来保存图像堆栈的元素。“

关于这个家庭作业的一些背景是,我使用ImageStack.java与其他的.java类文件(ImageStack.java将与其他文件一起工作)。 ImageStack有方法:push(), pop(), peek(), isEmpty(), clear(), getSize()。我知道如何做所有这些,但我不确定如何通过ArrayList“实现”堆栈,如果这是它真正要求的。

所以我明白,它告诉我们不要使用import java.util.*;在我的CS类中,我看到“实现”一词意味着不同的东西......我不确定是否应该启动类文件,如

public class ImageStack { 

public class ImageStack implements... 

,或者器具指字面上只需创建一个场或喜欢的东西堆栈:

private Stack<Integer> ..... 

任何伪代码或代码建议都会有帮助!

+0

向我们展示你做了什么码? – Batty 2014-09-26 05:50:42

+0

您是否阅读过[ArrayList](http://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html)?只是使用这个类中的内置函数来实现堆栈 – 2014-09-26 05:53:04

+0

Pham,我有点困惑,我会写什么代码来实现堆栈?这个链接上没有提到堆栈。 – eltigre 2014-09-26 06:03:24

回答

0

“实现堆栈”不使用Java术语在这里;它只是意味着编写一个能够完成堆栈应该做的事情的类。根本不需要在答案中使用implements关键字。你要做的是使用ArrayList来保存当前堆栈中的元素。

我觉得你的结论是,你不能使用import java.util.*是错误的。基本上你不应该使用内置的Stack类。使用import有这样的通配符不java.util每类实际上导入到你的程序,它只是让他们可用,以便您可以使用名称类没有把java.util.在名字前面。但是,如果您不想使用此导入,则可以通过说import java.util.ArrayList;来获得ArrayList

+0

感谢您的帮助。我仍然有点困惑,我如何使用ArrayList来保存当前堆栈中的元素。 B/C通常我实现堆栈像堆栈 example = new Stack (); ArrayList在哪里发挥作用? – eltigre 2014-09-26 06:21:17

+0

@eltigre你知道如何使用'ArrayList'的方法吗?如果不是,请先阅读[javadoc](http://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html)。一旦熟悉了可以在'ArrayList'上使用什么方法,想象一下如何将堆栈数据表示为'ArrayList'的元素,然后计算出'ArrayList'方法将以何种方式改变堆栈当你从堆栈推入或弹出时需要。 – ajb 2014-09-26 06:25:45

+0

好吧,我想我明白你的意思了。你说我实际上并没有通过做类似于...的创建堆栈“Stack example = new Stack ();”。相反,我创建一个ArrayList然后像使用堆栈一样使用它?自从我上一次CS课以来已经有一段时间了,所以我的术语有点生疏。谢谢! – eltigre 2014-09-26 18:23:46