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;
}
你可以在下面搜索框中键入要查询的问题!
高,我如何循环通过一个链表。我需要编写一个find()方法,如果列表中有某个字符串,该方法将返回true
public boolean find( Stack<String> s, String key )
{
for( String item : s )
{
if( item.equals( key ) )
return true;
}
return false;
}
# 1 楼答案
已经有一个“contains”方法:
http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html#contains(java.lang.Object)
如果你的LinkedList元素只是字符串,它应该可以正常工作。否则,您需要覆盖模型的“equals”方法
# 2 楼答案
听起来像是在说,您正在实现一个名为
Stack
的自定义链表实现,并且正在使用for-each语法对列表进行循环。为了使用这种语法,类需要实现Iterable
接口。这意味着您还需要为列表创建一个Iterator
,它将提供next()
、hasNext()
和remove()
方法# 3 楼答案
通常,你有一个指向列表头的指针。检查指向的项目是否与搜索字符串匹配。如果是,则返回true。如果没有,则将指针移动到列表中的下一项。如果到达列表的末尾,则返回false
(我假设这是家庭作业,所以我不会真正编写代码。如果您向我们展示一些非工作代码,我们将帮助您使其工作。)
编辑后添加:如果您使用的是链表,为什么要传入堆栈?不管怎样,你发布的代码看起来应该可以工作。您可能应该发布用于设置数据的代码,并调用
find
方法;可能有问题你提到的错误听起来像是你没有正确地传递堆栈;您应该能够对堆栈的内容执行foreach循环