如何从循环中删除Arraylist



因此,我正在尝试创建这个循环,该循环可以从阵列列表中删除给定字符串中的特定字符。问题是,当一排相同的字符中有两个相同的字符时,它会错过第二个字符,因为当第一个删除时,第二个字符被推到了数组列表中的一个位置。这就是我到目前为止的。有人知道怎么修这个东西吗?我仍然是Java的初学者,因此任何帮助都将不胜感激。

ArrayList<Character> list = new ArrayList();
String string = "BuBBuopB";
for(int i=0;i<string.length();i++) 
list.add(string.charAt(i));
System.out.println("BEFORE: " + list);

for(int i=0;i<list.size();i++) 
if(list.get(i).equals('B'))
    list.remove(i);
System.out.println("AFTER: " + list);

此示例打印的内容是:[u,b,u,o,p]当我希望它之后:[u,u,o,p]

,而不是使用基于intfor循环迭代您的集合,而是使用Iterator

Iterator<Character> iter = list.iterator();
while(iter.hasNext()) {
    if(iter.next().equals('B')) {
        // Remove the last thing returned by next()
        iter.remove();
    }
}

最新更新