我正在尝试删除以 r 和 g 开头的列表元素一个条件可以很好地删除从 r 开始的元素,但下一个不能在 if 循环中帮助我出错的地方。谢谢..!!我的代码是import java.util.Arrays;import java.util.LinkedList;public class EasyRemovingList { void removeList(){ String[] inpArray={"red","green","blue","ivory"}; LinkedList<String> upList = new LinkedList<String>(Arrays.asList(inpArray)); System.out.println("Actual "+upList+" "+upList.size()); //System.out.println(upList.get(3)); for(int i = 0;i<upList.size();i++){ //System.out.println(upList.get(i)); if(upList.get(i).startsWith("r")||upList.get(i).startsWith("g")){ upList.remove(i); System.out.println("Updated "+upList); } } //System.out.println(upList); } public static void main(String[] args) { // TODO Auto-generated method stub EasyRemovingList er = new EasyRemovingList(); er.removeList(); }}输出是Actual [red, green, blue, ivory] 4Updated [green, blue, ivory]预期输出是Actual [red, green, blue, ivory] 4Updated [blue, ivory]
3 回答
胡子哥哥
TA贡献1825条经验 获得超6个赞
您在遍历时正在删除,这在编码中是一种难闻的气味。
您可以尝试使用迭代器进行删除。
有了iterator,你用它作为
while(iter.hasNext()) {
String s = iter.next();
if (s. startsWith(“r”) || s. startsWith(“g”)) {
iter.remove();
}
}
添加回答
举报
0/150
提交
取消