java中打印数组常用的几种方法:
在Java开发中有时候需要打印数组信息,下面是整理归纳的几种打印数组方法:(如下)
①、使用 for 循环打印
最简单的方法,逐个遍历打印
注:如果是多维数组的话,使用多层 for 循环嵌套就可以打印了。
一维数组:
public static void main(String[] args) {
int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
// 普通for循环打印
System.out.println("普通for循环打印:");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "、");
}
System.out.println(); // 换行
// 增强for循环打印
System.out.println("增强for循环打印:");
for (int num : arr) {
System.out.print(num + "、");
}
}
二维数组:
public static void main(String[] args) {
int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二维数组
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print(arr[i][j] + "、");
}
}
}
②、使用 Arrays.toString() 或 Arrays.deepToString()
对于一维数组,可以使用Arrays.toString()
方法,它支持将任意类型的数组转换为字符串,代码如下:
public static void main(String[] args) {
int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
//使用Array.toString()
System.out.println(Arrays.toString(arr));
}
但对于多维数组,用 Arrays.toString() 就会出现和直接打印数组变量名时一样的问题,打印出来的是地址值。这时候,就需要使用 Arrays.deepToString()
方法了,如下图:Java不会去使用多维数组,最多用到二维,因为Java会用到面向对象
public static void main(String[] args) {
int[][] arr = new int[][] {{1,2},{2,3},{3,4},{4,5},{5,6}};// 二维数组
//使用Arrays.deepToString()
System.out.println(Arrays.deepToString(arr));
}
一维数组用 Arrays.toString() 方法,多维数组用 Arrays.deepToString() 方法
③、使用 Arrays.asList()
该方法是将数组转化为list
以下几点需要注意:
(1)该方法不适用于基本数据类型
(byte,short,int,long,float,double,boolean),但可以用基本数据类型的封装类。比如int的封装类Integer.(Object 数组也是有效)
(2)该方法将数组与列表链接起来,当更新其中之一时,另一个自动更新
(3)不支持add和remove方法
public static void main(String[] args) {
int[] arr = new int[]{0,1,2,3,4,5,6,7,8,9};
System.out.println(Arrays.asList(arr));
//打印结果:[[I@140e19d]
}
public static void main(String[] args) {
Integer[] arr = new Integer[]{0,1,2,3,4,5,6,7,8,9};
System.out.println(Arrays.asList(arr));
//打印结果:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
}