Java-List集合的删除bug
原创约 336 字大约 1 分钟...
126-Java-List集合的删除bug.md
注意
本博文仅供学术研究和交流参考,严禁将其用于商业用途。如因违规使用产生的任何法律问题,使用者需自行负责。
package List集合;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class TestArrayListBug {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("abc");
list.add("777c");
list.add("123");
list.add("456");
list.add("456");
list.add("456");//4 3
list.add("aqqc");
list.add(null);
list.add(null);// 7 6
//需求:把元素456删除
//用下面的代码如果两个456挨着,那么后面那个不会被删除
// for (int i = 0; i < list.size(); i++) {//0 ----- 7 list.get(7)
// if("456".equals(list.get(i))) {
// list.remove(i);
// }
// System.out.println(list.get(i));
// }
//解决方案:从后面往前删除就可以了
// for (int i = list.size()-1; i >=0; i--) {
// System.out.println(list.get(i));
// if("456".equals(list.get(i)))
// {
// list.remove(i);
// }
// }
//
// System.out.println("==================");
// System.out.println(list.toString());
//我自己的理解,更好的删除方法,不会漏掉任何元素
for (int i = 0; i < list.size(); i++) {
if("456".equals(list.get(i))) {
list.remove(i);
i--;
}
}
System.out.println(Arrays.toString(list.toArray()));
}
}
分割线
相关信息
以上就是我关于 Java-List集合的删除bug 知识点的整理与总结的全部内容,另附源码
Powered by Waline v2.15.4