所以我有这个数组,我想删除长度为2或4个字符的字符串(包含2或4个字符的字符串).我正在做这个方法,它不起作用,即使在逻辑上,它应该工作.
public static void main(String[] args)
{
ArrayList<String> list = new ArrayList<String>();
list.add("This");
list.add("is");
list.add("a");
list.add("test");
for (int i=0; i<list.size(); i++)
{
if(list.get(i).length()==2 || list.get(i).length()==4)
{
list.remove(i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想坚持这种做法.你能否就如何纠正这些代码给我一些建议?
运行它时,此代码的输出是:
[is, a]
Run Code Online (Sandbox Code Playgroud)
即使我想要输出
[a]
Run Code Online (Sandbox Code Playgroud)
因为"是"是2个字符长.
PeterPeiGuo是对的 - 你正在删除正在改变索引的元素.
这是迭代器的主要候选者.
Iterator<String> it = list.iterator();
while(it.hasNext()) {
String val = it.next();
if(val.length() == 4 || val.length() == 2) {
it.remove();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
493 次 |
| 最近记录: |