浅谈Java迭代器
迭代器Iterator
概述:
迭代器(Iterator):它不是一个容器,它是一种用于访问容器的方法,可用于迭代 List、Set和Map等容器。
迭代:一个一个的往外拿。
作用:帮我们遍历或者拿到容器里边的数据。
常用操作:
next() 下一个
hasNext() 判断是否存在下一个元素
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迭代器的更多相关文章
- 浅谈JAVA集合框架
浅谈JAVA集合框架 Java提供了数种持有对象的方式,包括语言内置的Array,还有就是utilities中提供的容器类(container classes),又称群集类(collection cl ...
- 浅谈Java的集合框架
浅谈Java的集合框架 一. 初识集合 重所周知,Java有四大集合框架群,Set.List.Queue和Map.四种集合的关注点不同,Set 关注事物的唯一性,List 关注事物的索引列表,Q ...
- 浅谈java类集框架和数据结构(2)
继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...
- 浅谈Java中set.map.List的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别
就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...
- 浅谈Java的throw与throws
转载:http://blog.csdn.net/luoweifu/article/details/10721543 我进行了一些加工,不是本人原创但比原博主要更完善~ 浅谈Java异常 以前虽然知道一 ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
随机推荐
- 22.17、heartbeat和drbd整合
1.要确保master-db和slave-db的drbd服务和heartbeat服务都已经停止了: 2.heartbeate设置: 修改master-db和slave-db的'/etc/ha.d/ha ...
- HDU 1686 Oulipo kmp裸题
kmp算法可参考 kmp算法 汇总 #include <bits/stdc++.h> using namespace std; const int maxn=1000000+5; cons ...
- python二进制读写及特殊码同步
python对二进制文件的操作需要使用bytes类,直接写入整数是不行的,如果试图使用f.write(123)向文件中以二进制写入123,结果提示参数不是bytes类型. import os impo ...
- 解决mount.nfs: access denied by server while mounting
在linux下进行挂载时突然出现: mount.nfs: access denied by server while mounting 第一感觉是读取文件权限不够,准备去更改一下挂载点的权限,但又考 ...
- buu 刮开有奖
一.查壳, 二.拖入ida,分析 直接搜字符串完全没头绪,在看了大佬的wp才找到了,关键函数. 明显那个String就是我们要求的flag,要开始分析程序. 字符串长度为8,同时这个函数对字符串进行了 ...
- 高质量代码优化!谈谈重构项目中if-else代码的几点建议
switch if - else只适合在3层之内使用 当条件判断较多时,可以首先考虑使用switch interface 当判断条件还可能动态增加时,可以考虑将switch进一步优化,引入接口inte ...
- RWLock——一种细粒度的Mutex互斥锁
RWMutex -- 细粒度的读写锁 我们之前有讲过 Mutex 互斥锁.这是在任何时刻下只允许一个 goroutine 执行的串行化的锁.而现在这个 RWMutex 就是在 Mutex 的基础上进行 ...
- [转载]实现DDOS攻击自动封禁IP
1 #!/bin/bash 2 ############################################################# 3 # File Name: ddos_ch ...
- Codeforces Round#687 Div2 题解
打这场的时候迷迷糊糊的,然后掉分了( A Prison Break: 题面很复杂,但是题意很简单,仅需求出从这个点到四个角的最大的曼哈顿距离即可 #include <bits/stdc++.h& ...
- .NET6 preview is coming
快速升级.NET 6.0 本文发布文章,只是证明,从5.0到6.0还是那么简单.其实官网永远是最好的老师,你可以直接看官网: https://docs.microsoft.com/zh-cn/aspn ...