迭代器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. 36、网卡绑定bond

    注意:虚拟机需要网卡模式为同一模式,否则无法进行通信: 36.1.mode0(平衡负载模式): 平时两块网卡均工作,且自动备援,但需要在与服务器本地网卡相连的交换机设备上进行端口聚合来支持绑定技术. ...

  2. 6.12、通过kvm可视化管理虚拟机

    6.12.1.通过Xmanager - Passive管理kvm虚拟机(首先要安装xmanager): 1.安装虚拟化管理软件: [root@centos7 ~]# yum install -y vi ...

  3. 6、inotify实时备份

    备份用户nfs共享文件系统,存储单点解决方案inotify+rsync(增量,无差异备份),inotify是单线程, inotify是一种强大的,细粒度的,异步的文件系统事件监控机制,通过加入了ino ...

  4. 关于 C#的一些记录

    1, 注意: 使用Linq to Sql 查询数据库的时候,进行where 判断需要注意.我使用的EF,以下为我的记录使用Contain 需要 使用 *.Contains("" + ...

  5. AcWing 102. 最佳牛围栏

    农夫约翰的农场由 N 块田地组成,每块地里都有一定数量的牛,其数量不会少于1头,也不会超过2000头. 约翰希望用围栏将一部分连续的田地围起来,并使得围起来的区域内每块地包含的牛的数量的平均值达到最大 ...

  6. MySQL | Xtrabackup 安装

    rpm方式安装 # xtrabackup 2.4.8 安装包 wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup- ...

  7. 小哈学python----一行代码输出特定字符"Love"拼成的心形

    print('\n'.join([''.join([('Love'[(x-y) % len('Love')] if ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2* ...

  8. 「CF85E」 Guard Towers

    「CF85E」 Guard Towers 模拟赛考了这题的加强版 然后我因为初值问题直接炸飞 题目大意: 给你二维平面上的 \(n\) 个整点,你需要将它们平均分成两组,使得每组内任意两点间的曼哈顿距 ...

  9. 【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:

    这种情况下,如何保留本地的修改同时又把远程的合并过来呢? 首先取决于你是否想要保存本地修改.(是 /否) 是 git stash git pull origin master git stash po ...

  10. Ubuntu20.4 bs4安装的正确姿势

    一.背景 公司一小伙子反馈在内网机器上通过代理,还是安装不了bs4:于是乎,作为菜鸡的我开始排查.一直认为是网络和代理问题,所以关注点一直放在网络和安装包上:在网上搜索到,主要是以下问题: 1)更新a ...