Java数组输出
不同于python,print可以直接输出数组内容,java 输出会输出地址值,在python中用id()输出地址。
int[] arr = new int[]{1,2,3,4,5};
System.out.println(arr);//地址:[I@1b6d3586
对于char数组,直接输出是数组值,重写了输出函数。
char[] arr1 = new char[]{'a','b','c'};
System.out.println(arr1);//abc
对于String,Data,File等类,重写了toString(),使得输出实际值。在自定义类中也可以通过重写toString(),输出实际值。
String str1 = new String("zane");
System.out.println(str1);//zane
System.out.println(str1.toString());//zane
除了用for循环输出数组内容,还可以通过Arrays来操作数组,对于一维数组可以通过Arrays.toString()输出数组的字符串表示形式。对于多维数组可以通过Arrays.deepToString()输出数组字符串表示形式。
Array是Java数据结构中的一种,可以提供动态创建和访问Java数组的方法。
Arrays是静态类,专门用于处理Array,为数组提供排序,对比,复制等静态方法。
package Day3;
/*
当输出一个引用时,实际上就是调用当前对象的toString()
一般自定义类可以重写toString(),输出实际内容
*/
import java.util.Arrays;
public class DebugTest {
public static void main(String[] args){
int[] arr = new int[]{1,2,3,4,5};
//输出一个对象,等效于输出对象的toString()
System.out.println(arr);//类名+地址:[I@1b6d3586
System.out.println(arr.toString());//类名+地址:[I@1b6d3586
System.out.println(Arrays.toString(arr));//数组内容:[1, 2, 3, 4, 5]
String str1 = new String("zane");
System.out.println(str1);//zane
System.out.println(str1.toString());//zane
char[] arr1 = new char[]{'a','b','c'};
System.out.println(arr1);//abc,重写了Object类的toString()
System.out.println(arr1.toString());//类名+地址:[C@4554617c
System.out.println(Arrays.toString(arr1));//数组内容:[a, b, c]
char[] arr2 = new char[]{'c','b'};
char[][] arr3 = new char[][]{arr1,arr2};
System.out.println(arr3);//类名+地址:[[C@74a14482
System.out.println(Arrays.toString(arr3));//二维数组类名+地址:[[C@4554617c, [C@1540e19d]
System.out.println(Arrays.deepToString(arr3));//数组内容:[[a, b, c], [c, b]]
char[][] arr4 = new char[][]{arr1,arr2,arr1};
System.out.println(Arrays.deepToString(arr4));//数组内容:[[a, b, c], [c, b], [a, b, c]]
}
}