一般常用的有三种:普通for循环,foreach循环,Iterator循环
package com.hzy.demo; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class Demo { private static void printList(List<String> l) { System.out.print("List: "); for (String s : l) { System.out.print(s); } System.out.println(); } public static void main(String[] args) { /** 创建一个List */ List<String> li = new ArrayList<String>(); for (int i = 0; i < 20; i++) { String str = String.format("%d%c ", i, 'a' + i); li.add(str); } printList(li); /** 采用迭代器遍历,可根据条件删除 */ Iterator<String> iterator = li.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if (item.equals("0a ")) { iterator.remove(); } } printList(li); /** foreach循环,不能根据条件可以删除:java.util.ConcurrentModificationException */ for (String string : li) { if (string.equals("1b ")) { // li.remove(string); } } printList(li); /** for循环, 每次要重新计算list大小 */ for (int i = 0; i < li.size(); i++) { if (li.get(i).equals("2c ")) { li.remove(i); } } printList(li); } }
foreach循环体内不要删除操作,使用普通for循环或迭代器操作。