集合的三种遍历方式

文章目录

作者简介:最爱吃兽奶

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

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


一.迭代器遍历

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


总结

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

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

                                                                                                                              ----  最爱吃兽奶

  • 12
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢吃animal milk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值