描述:
這裏用到四種方式進行遍歷,第一種是增強for,這個方法會報錯,估計這就是面試管給的坑,第二種方法用的迭代器,第三種方法用的是正向for循環,這種方法需要注意,刪除一個元素後,後面元素會自動前移,在後續遍歷時,需要i --;
操作,第四種方法是反向for循環,刪除一個元素後,由於是後面的元素前移,所以在接下來遍歷前面的元素時,不用進行i --;
操作。
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("b");
list.add("c");
// // 增強for遍歷刪除,會報錯
// for (String s : list) {
// if (s.equals("a")) {
// list.remove(s);
// }
// }
// System.out.println(list);
// // 迭代器遍歷
// Iterator<String > iterator = list.iterator();
// while (iterator.hasNext()) {
// if (iterator.next().equals("a")) {
// iterator.remove();
// }
// }
// // 正向for循環,記得i --,因爲刪除一個元素後,其他元素都會前移;
// for (int i = 0; i < list.size(); i++) {
// if (list.get(i).equals("a")) {
// list.remove(i);
// i --;
// }
// }
// System.out.println(list);
// 反向for循環
for (int i = list.size() - 1; i >= 0; i--) {
if (list.get(i).equals("a")) {
list.remove(i);
}
}
System.out.println(list);
}
}