所以这里的想法是我正在比较两个ArrayLists。如果来自PirateDictionary的单词与Phrase中的短语匹配则打印短语+1,如果它不匹配,则只需返回原始单词。现在我的代码做了比较就好了,但是当它进入第一个匹配的情况时,它按照预期打印出短语+1,但是当仍然有要比较的单词时它会停止,这就是我不知道我在哪里我失踪了。这是我正在使用的方法:
public void compareLists(){
String nameSearch;
for(PirateDictionary w: words){
nameSearch = w.toString();
Iterator<Phrase> it = phrases.iterator();
while(it.hasNext())
{
Phrase c = it.next();
if (c.getName().equals(nameSearch)) {
System.out.println( it.next().toString());
return;
}
}
System.out.println(w.toString());
}
}
如果有人能看到这个,我会很感激。
答案 0 :(得分:0)
如你所说,你的代码工作正常,直到达到第一个匹配的情况。在您的代码中,这是if
- 子句中的条件被评估为true
的点:
if (c.getName().equals(nameSearch)) {
System.out.println( it.next().toString());
return;
}
如果找到匹配项,匹配的字符串将打印到System.out
,然后您返回(保留方法) - 因此不会进行其他比较。请删除return
语句以继续检查其余字词。