大家好,又见面了,我是你们的朋友全栈君。
参考 【JavaGuide】labmbda 表达式
引言
记录一下 Java 遍历数组的几种常见方法
下面以遍历整数数组为例
代码语言:javascript复制Integer[] arr = {
1, 3, 4, 5, 6}; // 这里不能使用 int[],会报错
// !!!注意:使用 Arrays.asList 转换为集合时,不能用其进行修改集合的相关方法(add/remove)
List<Integer> list = Arrays.asList(arr);
1、利用 for 遍历
代码语言:javascript复制// 1、利用 for 遍历
System.out.println("1、利用 for 遍历");
for (int i = 0; i < list.size(); i ) {
System.out.print(list.get(i) ", ");
}
- 优点:
- 对于任意含下标的数据结构均适用
- 可以通过下标访问数据元素
- 缺点:
- 较为繁琐
2、利用 foreach 循环
代码语言:javascript复制// 2、利用 foreach 循环
System.out.println("nn2、利用 foreach 循环");
for (int i : list) {
System.out.print(i ", ");
}
- 优点:
- 相对于 for 循环,较为简单
- 可以处理任何实现了 Iterable 接口的对象,以及 8 大基本类型对应的包装类数组
- 缺点:
- 无法通过下标访问数据元素
3、使用 -> 的 lambda 表达式遍历数组
代码语言:javascript复制// 3、使用 -> 的 lambda 表达式遍历数组
System.out.println("nn3、使用 -> 的 lambda 表达式遍历数组");
list.forEach(i -> System.out.print(i ", "));
- 优点:
- 简单、方便
- 缺点:
- 无法通过下标访问数据元素
- 方法体中最好不要包含太多逻辑复杂的代码(可以通过方法引用 ::)
4、使用 :: 的 lambda 表达式遍历数组
代码语言:javascript复制// 4、使用 :: 的 lambda 表达式遍历数组
System.out.println("nn4、使用 :: 的 lambda 表达式遍历数组");
list.forEach(System.out::println);
- 优点:
- 简单、方便
- 缺点:
- 不方便自定义打印内容的格式
- (除非自己重新定义一个 print 方法,但是那样就违背了使用 lambda 表达式是“为了更简单”的初衷了)
- 不方便自定义打印内容的格式
5、基于流的方法
《Java 卷2》暂时没看,看了之后回头再补
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/191672.html原文链接:https://javaforall.cn