Java中遍历的三种方式:普通for循环、增强型for循环、迭代方式。
一、普通For循环
1、遍历
List<String> set = new ArrayList<String>();
set.add("张三");
set.add("李四");
for(int i=0;i<set.size();i++){
System.out.println(set.get(i));
}
输出:
张三
李四
2、修改或删除元素
// 只有使用普通for循环可以删除元素
for(int i=0;i<set.size();i++){
if(i==1) {
set.remove(i);
}
}
输出:
张三
特点:
1、可以获取具体位置的元素
2、可以在遍历的同时修改或者删除元素
二、增强型For循环
1、遍历
for (String s : set) {
System.out.println(s);
}
输出:
张三
李四
2、遍历时不能删除元素
//遍历时不能删除元素
for(String s:set){
if("李四".equals(s)){
set.remove(s);
}
}
报错信息:
Exception in thread "main" java.util.ConcurrentModificationException
3、迭代器遍历
1、遍历
Iterator<String> m = set.iterator();
Iterator<String> n = set.iterator();
while(m.hasNext()){
System.out.println(m.next());
}
输出:
张三
李四
2、使用迭代器的remove方法删除
while(n.hasNext()){
if("李四".equals(n.next())){
n.remove();
}
}
for (String s : set) {
System.out.println(s);
}
输出:
张三
备注:使用不同的两个遍历器m和n,是因为发现迭代器只能使用一次。