Java中数组遍历的三种方式
首先,创建一个数组,以整型数组为例,长度50,值为下标+1
public static void main(String[] args) {
int[] arr = new int[50];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
}
}
基本for循环
基本for循环,i代表arr的下标,arr[i]获取i下标处的数组值。输出格式可以自由调整
/**
* 通过基本的for循环进行遍历
* @param arr
*/
public static void traverseByFor(int[] arr) {
if (arr == null) {
return;
}
System.out.println("以下是通过基本for循环的遍历结果");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
在main中调用此方法
traverseByFor(arr);
运行结果:
以下是通过基本for循环的遍历结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
foreach
foreach遍历,可以直接获取当前的值,但是不知道当前元素的下标,输出格式可以自定义
/**
* 通过foreach循环进行遍历
* @param arr
*/
public static void traverseByForeach(int[] arr) {
if (arr == null) {
return;
}
System.out.println("以下是通过foreach循环遍历的结果");
for (int cur : arr) {
System.out.print(cur + " ");
}
System.out.println();
}
在main中调用此方法
traverseByForeach(arr);
运行结果
以下是通过foreach循环遍历的结果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Arrays.toString()
通过Java自带的API遍历,方法处理后返回值是一个字符串,输出固定
/**
* 通过Arrays.toString()遍历
* @param arr
*/
public static void traverseByAPI(int[] arr) {
System.out.println("以下是通过API中Arrays.toString()遍历的结果");
System.out.println(Arrays.toString(arr));
System.out.println();
}
以下是源码,自带对null值的处理
public static String toString(int[] a) {
if (a == null)
return "null";
int iMax = a.length - 1;
if (iMax == -1)
return "[]";
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; ; i++) {
b.append(a[i]);
if (i == iMax)
return b.append(']').toString();
b.append(", ");
}
}
在main中调用此方法
traverseByAPI(arr);
运行结果:
以下是通过API中Arrays.toString()遍历的结果
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]
完整代码
以下是完整代码可以自己去尝试一下
import java.util.Arrays;
public class TraverseArray {
public static void main(String[] args) {
int[] arr = new int[50];
for (int i = 0; i < arr.length; i++) {
arr[i] = i + 1;
}
traverseByFor(arr);
traverseByForeach(arr);
traverseByAPI(arr);
}
/**
* 通过基本的for循环进行遍历
* @param arr
*/
public static void traverseByFor(int[] arr) {
if (arr == null) {
return;
}
System.out.println("以下是通过基本for循环的遍历结果");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
/**
* 通过foreach循环进行遍历
* @param arr
*/
public static void traverseByForeach(int[] arr) {
if (arr == null) {
return;
}
System.out.println("以下是通过foreach循环遍历的结果");
for (int cur : arr) {
System.out.print(cur + " ");
}
System.out.println();
}
/**
* 通过Arrays.toString()遍历
* @param arr
*/
public static void traverseByAPI(int[] arr) {
System.out.println("以下是通过API中Arrays.toString()遍历的结果");
System.out.println(Arrays.toString(arr));
System.out.println();
}
}
不合适的地方欢迎直接提出来~