概述
迭代器和增强for
迭代器是什么?
- 迭代器是帮助遍历集合的类
- 它是一个接口
迭代器演示
-
迭代器的演示
-
迭代器的创建
-
集合.iterator(); 返回一个Iterator<引用类型>
-
遍历时删除修改,会引发并发修改异常
-
异常:
ConcurrentModificationException
-
产生原因:
- 在迭代器遍历集合的时候,如果使用集合对象增删集合元素,就会出现并发修改异常
-
解决异常
- 如果要删除元素,可以使用迭代器的remove()方法
- 如果要添加元素,迭代器里面没有提供添加的方法。如果要用需要使用另一个迭代器ListItr
-
//删除演示:
//创建Arraylist 集合 ArrayList<String> list = new ArrayList<>(); //添加集合 list.add("CSDN"); list.add("常家壮"); list.add("博客"); //迭代器创建 Iterator<String> iterator = list.iterator(); //循环 //快捷键:itit while (it.hasNext()) { String s = it.next(); //判断之后删除 if(s.equals("常家壮")){ it.remove(); //删除当前元素 } }
-
-
创建迭代器如下演示:
//创建Arraylist 集合
ArrayList<String> list = new ArrayList<>();
//添加集合
list.add("CSDN");
list.add("常家壮");
list.add("博客");
//迭代器创建
Iterator<String> iterator = list.iterator();
方法 | 说明 |
---|---|
E next() | 获取集合中的元素 |
boolean hasNext() | 判断集合中有没有下一个元素 |
void remove() | 删除当前元素 |
遍历集合
public class Texitit {
public static void main(String[] args) {
//创建Arraylist 集合
ArrayList<String> list = new ArrayList<>();
//添加集合
list.add("CSDN");
list.add("常家壮");
list.add("博客");
//迭代器遍历集合
Iterator<String> iterator = list.iterator();
//用迭代器遍历数组 如果用idea 快捷键:itit
while (iterator.hasNext()) {
String next = iterator.next();
System.out.println(next);//输出遍历结果
}
}
}
迭代器底层源码
public boolean hasNext() {
return cursor != size;
}
public E next() {
checkForComodification();
int i = cursor;
if (i >= size){
throw new NoSuchElementException();
}
Object[] elementData = ArrayList.this.elementData;
if (i >= elementData.length){
throw new ConcurrentModificationException();
}
cursor = i + 1;
return (E) elementData[lastRet = i];
}
增强for
-
提到迭代器就不得不说,增强for,增强for它的实现就是用的迭代器
-
增强for使用比迭代器简单
-
增强for底层是迭代器,当在遍历时删除修改,也会出现并发异常
-
作用
- 遍历集合获取每个元素
-
格式
for(元素类型 元素名 : 集合/数组){ 代码; }
-
代码演示
-
public class TexitFor { public static void main(String[] args) { //创建Arraylist 集合 ArrayList<String> list = new ArrayList<>(); //添加集合 list.add("CSDN"); list.add("常家壮"); list.add("博客"); //增强for实现遍历 for (String s : list) { System.out.println(s);//打印集合元素 } } }
感觉不足请在评论区,留言
最后
以上就是陶醉冰淇淋为你收集整理的迭代器和增强for的使用迭代器是什么?迭代器演示增强for感觉不足请在评论区,留言的全部内容,希望文章能够帮你解决迭代器和增强for的使用迭代器是什么?迭代器演示增强for感觉不足请在评论区,留言所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复