集合的三种遍历方式

这篇具有很好参考价值的文章主要介绍了集合的三种遍历方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章目录

目录

文章目录

一.迭代器遍历

二.增强for遍历

三. forEach方法

四. Lambda表达式

 函数式接口: 函数式接口是指只有一个抽象方法的接口

为什么Lambda只能用于函数式接口

总结


前言

作者简介:最爱吃兽奶集合的三种遍历方式

座右铭:抱怨身处黑暗,不如提灯前行

内容介绍:今天给大家讲一下集合的遍历方式。

集合的三种遍历方式


一.迭代器遍历

迭代器(Iterator)是一种对象,它可以让我们遍历集合对象中的元素。Java中的集合类(例如ArrayList、LinkedList、HashSet、TreeSet等)都实现了Iterable接口,因此可以使用迭代器来遍历集合中的元素。

步骤

1.创建迭代器对象

2.判断是否有下一个元素

3.获取元素,并移动指针,指针默认指向起始位置

集合的三种遍历方式

集合的三种遍历方式

二.增强for遍历

增强for循环是一种Java语言中的循环结构,也称为for-each循环,底层由迭代器实现。它可以用来遍历数组或集合中的元素,语法比传统的for循环更简洁,代码更易读。增强for循环的语法格式如下: 

for (元素类型 变量名 : 数组或集合) {
// 循环体
}

其中,元素类型是数组或集合中元素的数据类型,变量名是每个元素的变量名,数组或集合是要遍历的对象。在循环体中,可以使用变量名来访问每个元素的值。增强for循环适用于遍历数组或集合中的所有元素,但无法访问数组或集合的下标或索引。 

集合的三种遍历方式

三. forEach方法

​​​​​​​集合中的forEach方法是Java 8中引入的一种遍历集合元素的新方式,它可以让我们更方便地遍历集合中的元素,而且可以使用Lambda表达式或方法引用来处理集合中的元素。

集合的三种遍历方式

集合的三种遍历方式

四. Lambda表达式

Lambda表达式是Java 8中引入的一种新的语法,它可以用来简化函数式接口的实现。Lambda表达式的语法非常简洁,可以让我们更方便地编写函数式接口的实现代码。

格式

箭头符号(->)左侧是参数列表,右侧是函数体。

() -> {}

() : 和方法的参数匹配

{} : 和方法的方法体匹配

集合的三种遍历方式

 可以省略的情况

1.省略参数类型:如果Lambda表达式的参数列表中只有一个参数,
并且该参数的类型可以根据上下文推断出来,则可以省略参数类型。
(String x) -> x + 1
(x) -> x + 1
2.省略参数括号:如果Lambda表达式的参数列表中只有一个参数,则可以省略参数括号。
复制代码
(x) -> x + 1
x -> x + 1
3.省略花括号:如果Lambda表达式的函数体中只有一条语句,则可以省略花括号。
复制代码
x -> {System.out.println(x)}
x -> System.out.println(x)
4.省略return关键字:如果Lambda表达式的函数体中只有一条语句,
并且该语句的结果可以直接返回,则可以省略return关键字。
(x,y) - > return x+y
(x, y) -> x + y
5.方法引用:如果Lambda表达式的函数体中只是调用了某个方法或构造函数,则可以使用方法引用来简化代码
x -> System.out.println(x)
System.out::println
需要注意的是,Lambda表达式只能用于函数式接口的实现,
即只有一个抽象方法的接口

 最终形式

集合的三种遍历方式

 函数式接口: 函数式接口是指只有一个抽象方法的接口

Consumer接口中只有一个抽象方法accept,因此是函数是接口,可以使用Lambda表达式

集合的三种遍历方式

为什么Lambda只能用于函数式接口

Lambda表达式只能用于函数式接口,是因为Lambda表达式的本质是一个函数,它需要一个明确的目标类型来确定其参数类型和返回值类型。如果Lambda表达式可以用于任意类型的接口,那么编译器就无法确定Lambda表达式的类型,也就无法确定其参数类型和返回值类型,这样就无法正确地推断Lambda表达式的类型,也就无法正确地进行类型检查和编译。因此,Lambda表达式只能用于函数式接口。


总结

又到了令人开心的总结环节了,还是那句话,自己去敲去吧,大家可一定要敲代码呀

点赞。这样的人,不是傻子,他们知道自己想要什么,也知道自己能做什么。

                                                                                                                              ----  最爱吃兽奶

集合的三种遍历方式文章来源地址https://www.toymoban.com/news/detail-458525.html

到了这里,关于集合的三种遍历方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java基础教程】(四十八)集合体系篇 · 上:全面解析 Collection、List、Set常用子接口及集合元素迭代遍历方式~【文末送书】

    掌握 Java 设置类集的主要目的以及核心接口的使用; 掌握 Collection 接口的作用及主要操作方法; 掌握 Collection 子接口 List、Set 的区别及常用子类的使用; 掌握 Map 接口的定义及使用; 掌握集合的4种输出操作语法结构; 掌握 Properties类的使用 ; 了解类集工具类 Collections 的作

    2024年02月15日
    浏览(42)
  • Spring Boot获取resources目录下的文件的三种方式

    在Spring Boot项目中,经常需要获取 resources 目录下的文件。这些文件可以包括配置文件、模板文件、静态资源等。本文将介绍三种常用的方法来获取 resources 目录下的文件。 ResourceLoader 接口是Spring框架提供的用于加载各种资源的接口,包括 classpath 下的资源。在Spring Boot中,可

    2024年02月16日
    浏览(39)
  • 【算法与数据结构】二叉树的三种遍历代码实现(下)—— 非递归方式实现(大量图解)

     上篇: 【算法与数据结构】二叉树的三种遍历代码实现(上)—— 用递归序知识点讲解_Hacynn的博客-CSDN博客 https://blog.csdn.net/zzzzzhxxx/article/details/133609612?spm=1001.2014.3001.5502 目录 前言 1、先序遍历 1.1、详细图解描述 1.2、先序遍历非递归代码实现  2、中序遍历 2.1、详细图解描

    2024年02月08日
    浏览(25)
  • 【 java 集合】使用迭代器 Iterator 遍历集合

    💖 作者简介:大家好,我是阿牛,全栈领域优质创作者。😜 📝 个人主页:馆主阿牛🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 📣 系列专栏:java 小白到高手的蜕变🍁 💬格言:要成为光,因为有怕黑的人!🔥 上两篇文章总结了集合体系以及Collection常用方法,本节我们来

    2024年02月07日
    浏览(34)
  • 什么是迭代器(Iterator)?如何使用它遍历集合?

    迭代器(Iterator)是一种设计模式,它提供了一种遍历集合(如列表、数组、映射等)中元素的方法,而无需暴露集合内部的表示细节。它将遍历和集合分离,使得可以独立地操作和遍历集合。 在许多编程语言中,迭代器是一个对象,它包含了可以遍历集合的方法。常见的迭

    2024年02月15日
    浏览(31)
  • 【数据结构】二叉树的三种遍历

    目录 一、数据结构 二、二叉树 三、如何遍历二叉树 数据结构是计算机科学中用于组织和存储数据的方式。它定义了数据元素之间的关系以及对数据元素的操作。常见的数据结构包括数组、链表、栈、队列、树、图等。 数组是一种线性数据结构,它使用连续的内存空间存储

    2024年02月21日
    浏览(29)
  • JAVA——二维数组遍历二维数组的三种方法

    目录 🍒java中二维数组的定义和赋值 🍒二维数组遍历的三种方法 🍇第一种:for循环遍历 🍇第二种方法:通过Arrays.deepToString()遍历 🍇第三种方法:通过for(   :   )遍历 二维数组其实就是特殊的一维数组; 在java中将这句话诠释得淋漓尽致; 运行截图: 运行截图: 注意

    2024年02月08日
    浏览(32)
  • 设计模式学习笔记 - 设计模式与范式 -行为型:9.迭代器模式(上):相比直接遍历集合数据,使用迭代器模式有哪些优势?

    上篇文章,我们学习了状态模式。状态模式是状态机的一种实现方式。它通过将事件触发的状态转移和动作执行,拆分到不同的状态类中,以此来避免状态机类中的分支判断逻辑,应对状态机类代码的复杂性。 本章,学习另外一种行为型设计模式,迭代器模式。它用来遍历集

    2024年04月15日
    浏览(41)
  • 获取ArrayList集合中的元素的三种方法

    背景:创建数组List

    2024年02月10日
    浏览(28)
  • java删除文件或目录的三种方法

    传统删除是利用IO流,本文利用NIO流实现。 代码如下(示例): 代码如下(示例): 代码如下(示例): 利用NIO流的好处: 1.如果删除失败,可以给出错误的具体原因; 2.代码不多,效率高。

    2024年02月10日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包