实现思路:从索引0开始寻找和要删除字符串相同的元素,当两者内容不相同时再让 i 自增,注意不要让 i 越界,因为删除元素以后集合的size()会发生改变。
public static void main(String[] args) {
ArrayList<String> strList = new ArrayList<>();
strList.add("刘备");
strList.add("刘备");
strList.add("刘备");
strList.add("关羽");
strList.add("张飞");
strList.add("赵云");
strList.add("刘备");
strList.add("刘备");
strList.add("诸葛亮");
System.out.println(strList);
int i = 0;
while (i < strList.size()) {
if (strList.get(i).equals("刘备")) {
strList.remove(i);
} else {
i++;
}
}
System.out.println(strList);
}
输出结果
[刘备, 刘备, 刘备, 关羽, 张飞, 赵云, 刘备, 刘备, 诸葛亮]
[关羽, 张飞, 赵云, 诸葛亮]
有什么错误的地方希望各位大佬能指出。