迭代器Iterator

概述:

迭代器(Iterator):它不是一个容器,它是一种用于访问容器的方法,可用于迭代 List、Set和Map等容器。

迭代:一个一个的往外拿。

作用:帮我们遍历或者拿到容器里边的数据。

常用操作:

  1. next() 下一个

  2. hasNext() 判断是否存在下一个元素

  3. remove() 删除元素

遍历List、Set和Map:

1. List的遍历:

List list = new ArrayList();

list.add("小明");

list.add("小红");

list.add("小蓝");

list.add("小绿");

【方法一】

for (int i = 0; i < list.size(); i++) {
String s = (String) list.get(i);// 强转
System.out.println(s);
}

【方法二】

Iterator it = list.iterator(); // 创建一个List的迭代器

while(it.hasNext()){// 判断有没有下一个元素
String s = (String) it.next(); //也要强转
System.out.println(s);
}

注:迭代器是一次性的东西,用完了,拿完了再去用就会报错!

2. Set的遍历:

Set set = new HashSet();

set.add("小明");

set.add("小红");

set.add("小蓝");

set.add("小绿");

Iterator it = set.iterator();// 创造一个Set迭代器

while(it.hasNext()){
String s = (String) it.next();// 强转
System.out.println(s);
}

3. Map的遍历:

Map map = new HashMap();

map.put("明明","小明");

map.put("红红","小红");

map.put("蓝蓝","小蓝");

map.put("绿绿","小绿");

【方法一】

// 循环遍历拿到它的每一项(key和value)———— 拿到key就能拿到value————KeySet()

Set set = map.keySet();// 拿到所有的key
Iterator it = set.iterator();// 放到迭代器
while (it.hasNext()){
String key = (String) it.next(); // 所有的key
System.out.println(map.get(key));// 通过key获取value:get()
}

【方法二】

Set set = map.entrySet();// set里面装的是entry
Iterator it = set.iterator(); while (it.hasNext()){
Map.Entry entry = (Map.Entry) it.next(); // 拿到的是entry
System.out.println(entry.getKey()); // 从entry里拿到key
System.out.println(entry.getValue()); // 从entry里拿到value
}

方法二图解:

总结:

java中提供了很多种容器,它们在存储元素时,采用的存储方式不同。所以当我们要取出这些容器中的元素时,可以通过迭代器来完成。就比如,Set容器是一种非线性结构,数据没有下标,即没有索引,因此通过迭代器可以进行遍历操作。

以上是我对今天所学Java迭代器(Iterator)知识的一些个人总结与感悟,最后,感谢各位大佬们看到了这里!愿你韶华不负,青春无悔!

注:

由于自己刚刚开始学习Java不久,语言文字描述、技术等各方面还不是很好,如果文章有任何错误和建议,请各位大佬尽情评论留言!如果这篇文章对你有些许帮助,希望可爱亲切的您点个赞推荐一手,非常感谢啦!

浅谈Java迭代器的更多相关文章

  1. 浅谈JAVA集合框架

    浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...

  2. 浅谈Java的集合框架

    浅谈Java的集合框架 一.    初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...

  3. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  4. 浅谈Java中set.map.List的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  5. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  6. 浅谈Java的throw与throws

    转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...

  7. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  8. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  9. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

随机推荐

  1. 暑假自学java第六天

    1,方法的覆盖:当子类继承父类,而子类中的方法与父类中方法的名称,返回类型及参数都完全一致时,就称子类中的方法覆盖了父类中的方法,有时也称方法的"重写" [不需要关键字] 2,th ...

  2. 网络编程+Python

    一.网络编程(模块:socket,from socket import *): 1. 网络层的IP地址可以唯一标识网络中的主机,传输层的"协议+端口"则可以唯一标识主机中应用程序( ...

  3. mongodb,redis,mysql的区别和具体应用场景(转)

    一.MySQL 关系型数据库. 在不同的引擎上有不同 的存储方式. 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高. 开源数据库的份额在不断增加,mysql的份额页在持续增长. 缺点就 ...

  4. Linux之19——Shell编程基础详解

    第一部分:Linux Shell 简介 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁.Shell 既是一种命令语言,又是一种程序设计语言. Shell 是指一种应用程序, ...

  5. Java 给PDF签名时添加可信时间戳

    一.程序运行环境 编译环境:IntelliJ IDEA 所需测试文件:PDF..pfx数字证书及密钥.PDF Jar包(Free Spire.PDF for Java).签名图片(.png格式) 可信 ...

  6. python 构造函数 析构函数

    #构造函数是在对象被创建是自动调用的方法,用来完成初始化操作class Test(object): def __init__(self, name): self.name = name print(' ...

  7. 【redis前传】redis整数集为什么不能降级

    前言 整数集合相信有的同学没有听说过,因为redis对外提供的只有封装的五大对象!而我们本系列主旨是学习redis内部结构.内部结构是redis五大结构重要支撑! 前面我们分别从redis内部结构分析 ...

  8. Day9 数组 冒泡排序及稀疏数组!

    数组 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.(下标从0开始) 数 ...

  9. Spark—RDD介绍

    Spark-RDD 1.概念介绍 RDD(Resilient Distributed Dataset):弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算 ...

  10. P7362 [eJOI 2020 Day2] XOR Sort

    P7362 [eJOI 2020 Day2] XOR Sort 题意 给你一个长度为 \(n\) 的序列,每次操作可以将一个数异或上相邻的一个数,求将序列改为严格单调递增序列或严格单调不降序列的操作次 ...