当前位置:   article > 正文

集合的三种遍历方式_集合迭代器遍历

集合迭代器遍历

文章目录

作者简介:最爱吃兽奶

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

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


一.迭代器遍历

迭代器(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表达式只能用于函数式接口。


总结

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

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

                                                                                                                              ----  最爱吃兽奶

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/201950?site
推荐阅读
相关标签
  

闽ICP备14008679号