for循环遍历使用 remove索引下标的问题
ArrayList<String> bookList =new ArrayList<>();
bookList.add("Java入门到入土");
bookList.add("MySQL从删库到跑路");
bookList.add("JavaEE进阶");
bookList.add("计算机网络:由上而下的组成");
bookList.add("小绅绅的私密笔记本:纯情的男孩");
bookList.add("算法导论");
for (int i = 0; i < bookList.size(); i++) {
String name=bookList.get(i);
if (name.length()>10){
bookList.remove(i);
i--;
}
//从大到小 遍历
for (int i = bookList.size() - 1; i >= 0; i--) {
String names=bookList.get(i);
if (names.length()>10){
bookList.remove(i);
}
}
*注意★:弊端 删除了元素,那么被删元素之后的内容都会依次向前挪动,有可能导致跳过某些元素.**
- (1) 元素挪动了,但是索引依旧++了,一旦元素删除,索引不要变.
- (2) 从后向前遍历,哪怕删除了元素,不会影响之前的元素.****