我是靠谱客的博主 陶醉冰淇淋,最近开发中收集的这篇文章主要介绍迭代器和增强for的使用迭代器是什么?迭代器演示增强for感觉不足请在评论区,留言,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

迭代器和增强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感觉不足请在评论区,留言所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部