Java 遍历数组的常见方法

参考 【JavaGuide】

引言

记录一下 Java 遍历数组的几种常见方法

下面以遍历整数数组为例

Integer[] arr = {
          
   1, 3, 4, 5, 6}; // 这里不能使用 int[],会报错
// !!!注意:使用 Arrays.asList 转换为集合时,不能用其进行修改集合的相关方法(add/remove)
List<Integer> list = Arrays.asList(arr);

1、利用 for 遍历

// 1、利用 for 遍历
System.out.println("1、利用 for 遍历");
for (int i = 0; i < list.size(); i++) {
          
   
	System.out.print(list.get(i) + ", ");
}
    优点: 对于任意含下标的数据结构均适用 可以通过下标访问数据元素 缺点: 较为繁琐

2、利用 foreach 循环

// 2、利用 foreach 循环
System.out.println("

2、利用 foreach 循环");
for (int i : list) {
          
   
	System.out.print(i + ", ");
}
    优点: 相对于 for 循环,较为简单 可以处理任何实现了 Iterable 接口的对象,以及 8 大基本类型对应的包装类数组 缺点: 无法通过下标访问数据元素

3、使用 -> 的 lambda 表达式遍历数组

// 3、使用 -> 的 lambda 表达式遍历数组
System.out.println("

3、使用 -> 的 lambda 表达式遍历数组");
list.forEach(i -> System.out.print(i + ", "));
    优点: 简单、方便 缺点: 无法通过下标访问数据元素 方法体中最好不要包含太多逻辑复杂的代码(可以通过方法引用 ::)

4、使用 :: 的 lambda 表达式遍历数组

// 4、使用 :: 的 lambda 表达式遍历数组
System.out.println("

4、使用 :: 的 lambda 表达式遍历数组");
list.forEach(System.out::println);
    优点: 简单、方便 缺点: 不方便自定义打印内容的格式 (除非自己重新定义一个 print 方法,但是那样就违背了使用 lambda 表达式是“为了更简单”的初衷了)

5、基于流的方法

《Java 卷2》暂时没看,看了之后回头再补

经验分享 程序员 微信小程序 职场和发展