有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVA循环linkedlist/在linkedlist中查找字符串

高,我如何循环通过一个链表。我需要编写一个find()方法,如果列表中有某个字符串,该方法将返回true

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

共 (3) 个答案

  1. # 2 楼答案

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

  2. # 3 楼答案

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

    (我假设这是家庭作业,所以我不会真正编写代码。如果您向我们展示一些非工作代码,我们将帮助您使其工作。)

    编辑后添加:如果您使用的是链表,为什么要传入堆栈?不管怎样,你发布的代码看起来应该可以工作。您可能应该发布用于设置数据的代码,并调用find方法;可能有问题

    你提到的错误听起来像是你没有正确地传递堆栈;您应该能够对堆栈的内容执行foreach循环