k.b*_*.bo 0 java iterator if-statement
我的程序有点问题.
Iterator<MyString> it = globalSet.iterator();
Iterator<String> it2 = globalArray.iterator();
while(it.hasNext() && it2.hasNext())
{
System.out.println(it2.next());
if(it.next().getLine().contains(it2.next()) == true)
{
//it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
如果我禁用if子句我的输出是正确的,如下所示:
1;Trägertour 096;1410;Autotour 1N410;
2;Trägertour 097;1410;Autotour 1N410;
3;Trägertour 098;1410;Autotour 1N410;
4;Trägertour 099;1410;Autotour 1N410;
5;Trägertour 100;1410;Autotour 1N410;
Run Code Online (Sandbox Code Playgroud)
但是如果if子句被启用,我的输出看起来像这样:
1;Trägertour 096;1410;Autotour 1N410;
3;Trägertour 098;1410;Autotour 1N410;
5;Trägertour 100;1410;Autotour 1N410;
Run Code Online (Sandbox Code Playgroud)
所以为什么?
在while循环的同一次迭代中两次前进相同的迭代器(通过调用it2.next()两次).你不应该.
while(it.hasNext() && it2.hasNext()) {
String str = it2.next();
System.out.println(str);
if(it.next().getLine().contains(str)) {
//it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |