打印容器无需任何帮助,直接打印容器对象即可获得容器内可视数据,但是对于数组,直接打印数组对象,最终是调用toString方法,打印出的只是:
* @return a string representation of the object. */ public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()); }
类名@HashCode。
package 持有对象.迭代器; import java.util.Arrays; public class Test { public static void main(String[] args) { int[] i = {1,2,3}; String[][] s = {{"1","2"},{"2"}}; System.out.println(i); System.out.println(s); } }
输出结果:
[I@7852e922
[[Ljava.lang.String;@4e25154f
其中【代表数组的维度, L 代表其为引用类型的数组,引用类型的数组有自己class的名称。I 代表其为基本类型的数组,基本类型的数组会带有其自己的标识,如int类型的标识为I,double类型的为D。
可以通过Arrays.toString( ... )方法打印出数组的可视数据
package 持有对象.迭代器; import java.util.Arrays; public class Test { public static void main(String[] args) { int[] i = {1,2,3}; String[][] s = {{"1","2"},{"2"}}; System.out.println(i); System.out.println(s); System.out.println(Arrays.toString(i)); System.out.println(Arrays.toString(s)); System.out.println(Arrays.toString(s[0])); } }
输出结果:
[I@7852e922 [[Ljava.lang.String;@4e25154f [1, 2, 3] [[Ljava.lang.String;@70dea4e, [Ljava.lang.String;@5c647e05] [1, 2]