Java集合类系列(3)--遍历集合
发布日期:2021-06-30 11:37:31
浏览次数:2
分类:技术文章
本文共 3004 字,大约阅读时间需要 10 分钟。
简单遍历
使用System.out的println()方法
使用System.out的println()方法来输出集合对象时,将输出[ele1,ele2,.....]
以上代码输出结果为[a, b, c]
使用Iterator接口迭代访问集合元素
不知道大家最开始接触遍历集合元素时使用的是什么方法,我最开始学习Java集合遍历的时候看的是视频教程,其中讲到遍历集合就是使用Iterator接口迭代访问集合元素的,对这种方法还是情有独钟的。
使用Iterator接口遍历集合其实就是使用Iterator中的hasnext和next,使用hasnext来判断集合中的下一个元素是否为空,如果是空则返回false,如果元素不为空则返回true,进入循环体使用next将下一个值打印出来。
示例代码
public static void main(String[] args) { //创建list对象 Listlist = new ArrayList (); //添加数据 list.add("张三"); list.add("李四"); list.add("王二"); list.add("麻子"); //使用Iterator遍历集合元素 Iterator iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
这段代码是以list为准进行Iterator迭代输出,同样对于Set和Map一样是可以使用Iterator进行迭代输出遍历集合元素,使用Iterator进行迭代输出集合元素的关键就是将原有集合转化成Iterator,因为我们最终是要使用hasnext和next进行输出的,只有将原有集合元素进行Iterator转化,我们才能进行hasnext和next的调用,掌握这一点也就掌握了Iterator遍历集合的方法。
另外java8为Iterator新增了一个forEachRemaining方法,我们通过这个方法可以使用Lambda表达式来遍历Iterator,示例如下
public static void main(String[] args) { //创建list对象 Listlist = new ArrayList (); //添加数据 list.add("张三"); list.add("李四"); list.add("王二"); list.add("麻子"); //使用Iterator遍历集合元素 Iterator iterator = list.iterator(); iterator.forEachRemaining((String name)->System.out.println(name));
我们可以看到,相比较上一个代码中,红色代码是主要的修改代码,这就是使用Lambda表达式来遍历Iterator。
使用foreach循环遍历集合元素
在上面我们那可以看到使用Iterator的forEachRemaining方法对集合进行遍历一行代码就可以搞定,相比较使用hasnext和next更加简洁方便,但是大家可能对Lambda表达式不太熟悉,那么我们可以使用foreach来循环遍历集合元素。
foreach是Java5的特性,感觉这个方法遍历集合元素真是很简单,话不多的说,让我们来看下如何使用的吧!
public static void main(String[] args) { //创建list对象 Listlist = new ArrayList (); //添加数据 list.add("张三"); list.add("李四"); list.add("王二"); list.add("麻子"); //使用foreach遍历集合元素 for (String string : list) { System.out.println(string); }
这就是foreach遍历集合元素,看起来都很简洁,不妨多尝试一下这样的方法。这段代码什么意思呢?foreach的使用就是使用for(),括号里面是A a:b的形式,b一般就是指的你的集合对象,比如你创建了一个LIst对象,List<String> list = new ArrayList<>(); 那么这个b就是list,前面的A一般就是指的你集合里面的元素类型,而a就是我们要打印的元素的一个变量,把集合里的每一个值赋值给a然后逐个打印输出。
使用Lambda表达式遍历集合
对于简单遍历输出结果一般是[a,b]这种形式,似乎用到的不是太多,我们还可以使用Lambda表达式进行集合的遍历,在讲遍历之前让我们来先简单认识一下Lambda表达式吧!
Lambda表达式
在最开始接触lambda表达式的时候是一头雾水,说白了就是感觉看不懂,不知道怎么使用,lambda表达式是Java8新增的一个特性,简单来说是可以将一些复杂的代码简洁化,我觉得关于lambda表达式这块可以进行专题学习,不然不能都透彻理解它,因为今天主要讲的还是Java集合,其中要使用lambda表达式,因此只做简单介绍。
在我看来lambda最简单的一个形式就是 () -> a,什么意思呢?我们再稍微详细的说一下,我们看如下:
1. () -> 5 这代表lambda表达式不需要参数,返回值为5
2. x -> x*3 这代表lambda表达式需要接受一个参数,然后返回这个参数的二倍。
3. (a,b) -> a+b 这代表lambda表达式需要接受两个参数,然后返回这两个参数的和。
等。
相信看到这里我们对lambda表达式似乎有那么点明白了,但是还是有点模糊,别急,我们再继续往下看,我们来举个例子
public static void main(String[] args) { //创建list对象 Listlist = new ArrayList (); //添加数据 list.add("张三"); list.add("李四"); list.add("王二"); list.add("麻子"); //使用Lambda表达式遍历集合元素 list.forEach((String name)->System.out.println(name));
使用Lambda表达式遍历集合用到了一个foreach默认方法。关于Lambda的学习还可以继续深入,以专题形式进行学习,私下应尽可能找资料自主学习,后续也会单独写一篇有关Lambda表达式的文章!
好了,以上就是一些简单的遍历集合元素的方法了!
转载地址:https://ithuangqing.blog.csdn.net/article/details/77800672 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月27日 05时48分21秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
leetcode3 无重复字符的最长子串
2019-04-30
leetcode 76 最小覆盖子串
2019-04-30
leetcode 1143. 最长公共子序列
2019-04-30
leetcode 83. 删除排序链表中的重复元素
2019-04-30
leetcode82 删除排序链表中的重复元素II
2019-04-30
leetcode 19 删除链表的倒数第N个结点
2019-04-30
leetcode 206 反转链表
2019-04-30
leetcode 21 合并两个有序链表
2019-04-30
leetcode 141 环形链表
2019-04-30
leetcode 202 快乐数
2019-04-30
leetcode11 盛最多水的容器
2019-04-30
Scala程序
2019-04-30
ROS安装
2019-04-30
IaaS,PaaS,SaaS 的区别
2019-04-30
元数据 metadata
2019-04-30
智能体 Intelligent Agent
2019-04-30
Network Compression网络压缩(一)
2019-04-30
GAN系列(零)—— GAN的发展(两条路线)
2019-04-30
Conditional GAN (CGAN) 条件生成网络
2019-04-30
强化学习(三) —— Policy Gradient 策略梯度
2019-04-30