1,用简单for循环遍历
但特别注意:在遍历的时候删除某个元素时,i--的作用是将游标拉回来
ArrayList<String> list = new ArrayList<>();
list.add("H");
list.add("e");
list.add("l");
list.add("l");
list.add("o");
for (int i = 0; i < list.size(); i++) {
if ("l".equals(list.get(i))) {
// list.remove(i);//此处删除需要特别注意,需要i--
list.remove(i--);
}
}
System.out.println(list);
}
2,使用迭代器 Iterator
推荐使用
ArrayList<String> list = new ArrayList<>();
list.add("H");
list.add("e");
list.add("l");
list.add("l");
list.add("o");
Iterator<String> it = list.iterator();
while(it.hasNext()){
if ("l".equals(it.next())) {
// list.remove(it.next());//其实这里会抛异常的.
it.remove();//此处用it.remove();
}
}
System.out.println(list);
3,使用增强型for语句(其实底层也是迭代器)
- 这语句只能用于遍历集合的.遍历过程中删除或者添加会报ConcurrentModificationException异常.
ArrayList<String> list = new ArrayList<>();
list.add("H");
list.add("e");
list.add("l");
list.add("l");
list.add("o");
for (String str : list) {
// if("l".equals(str))
// list.remove(str);
System.out.println(str);
}
System.out.println(list);