JAVA - 循环链表/在链表中查找字符串

时间:2011-04-25 20:11:37

标签: java

高,如何循环链接列表。我需要编写一个方法find(),如果某个字符串在列表中,则返回true

public boolean find( Stack<String> s, String key )
{
for( String item : s )
    {
    if( item.equals( key ) )
        return true;
    }
return false;
}

3 个答案:

答案 0 :(得分:1)

通常,您有一个指向列表头部的指针。检查指向项是否与搜索字符串匹配。如果是,则返回true。如果没有,则将指针移动到列表中的下一个项目。如果到达列表的末尾,则返回false。

(我假设这是作业,所以我实际上不会编写代码。如果你向我们展示一些非工作代码,我们将帮助你使它工作。)

编辑添加:如果您正在使用链接列表,为什么要传入堆栈?无论如何,你发布的代码看起来应该可行。您应该发布用于设置数据的代码并调用find方法;那里可能有问题。

你提到的错误听起来好像你没有正确传递一个堆栈;你应该能够在Stack的内容上做一个foreach循环。

答案 1 :(得分:0)

已有“包含”方法:

http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html#contains(java.lang.Object

如果您的LinkedList元素只是字符串,它应该可以正常工作。否则,您需要覆盖模型的'equals'方法。

答案 2 :(得分:0)

听起来你说你正在实现一个名为Stack的自定义链接列表实现,并且你正在使用for-each语法循环遍历列表。为了使用该语法,您的类需要实现Iterable接口。这意味着您还需要为列表创建Iterator,这将提供next()hasNext()remove()方法