黑马程序员技术交流社区
标题:
打印数组的问题
[打印本页]
作者:
会飞的狼
时间:
2013-8-13 02:05
标题:
打印数组的问题
看了张老师的打印数组例子后试着用迭代的方式打印多维数组,可是结果里面出现了很多地址值(还是什么其他的东西),难道数组里面有存了地址在里面吗?
String [][] s5 = new String [][] {{"s1","s2","s3"},{"s4","s5","s6"}};
printObject(s5);
printObject("sssss");
private static void printObject(Object obj) { //打印数组的方法(迭代)
Class c = obj.getClass();
if (c.isArray()) {
int len = Array.getLength(obj);
for (int i = 0; i < len; i++) {
printObject(Array.get(obj, i));
}
System.out.println(obj);
}
else{
System.out.println(obj);
}
}
结果:
s1
s2
s3
[Ljava.lang.String;@1bc4459 //这些地址值是怎么来的
s4
s5
s6
[Ljava.lang.String;@12b6651 //这些地址值是怎么来的
[[Ljava.lang.String;@4a5ab2 //这些地址值是怎么来的
sssss
作者:
xkfxm
时间:
2013-8-13 08:28
楼主你好
你定义了一个二维String型数组,这就好像一个一维数组中存放一些一维String 型数组。、
在打印这个数组时将这个二维数组传入,马上你遍历这个二维数组,for循环第一次得到里面第一个String数组,
然后又递归调用打印数组方法,这样一维数组的值就一个个打印出来了,打印完后,接着又打印了System.out.println(obj);就等于将第一个String一维数组直接打印,打印的结果是数组第一个元素s1的hashCode值。
for循环三次就将里面两个String一维数组按上面那种方式打印出来,所以第二个[Ljava.lang.String;@12b6651 是s4的地址值。
将里面一维数组循环打印完后,for结束,会打印二维数组第一个元素的地址值。
作者:
心灵之歌
时间:
2013-8-13 10:31
看了张老师的打印数组例子后试着用迭代的方式打印多维数组,可是结果里面出现了很多地址值(还是什么其他的东西),难道数组里面有存了地址在里面吗?
String [][] s5 = new String [][] {{"s1","s2","s3"},{"s4","s5","s6"}};
printObject(s5);
printObject("sssss");
private static void printObject(Object obj) { //打印数组的方法(迭代)
Class c = obj.getClass();
if (c.isArray()) {
int len = Array.getLength(obj);
for (int i = 0; i < len; i++) {
printObject(Array.get(obj, i));
}
System.out.println(obj);
}
else{
System.out.println(obj);
}
}
结果:
s1
s2
s3
[Ljava.lang.String;@1bc4459 //这些地址值是怎么来的 ////////因为这里你是直接打印的,数组它本身是一个应用类型变量,打印它的时候,要重写 toString方法!
s4
s5
s6
[Ljava.lang.String;@12b6651 //这些地址值是怎么来的 //////这里也一样,要重写toString方法!
[[Ljava.lang.String;@4a5ab2 //这些地址值是怎么来的 //////同理,从写toSString方法就可以了!
sssss
作者:
会飞的狼
时间:
2013-8-13 13:44
心灵之歌 发表于 2013-8-13 10:31
看了张老师的打印数组例子后试着用迭代的方式打印多维数组,可是结果里面出现了很多地址值(还是什么其他的 ...
不好意思,我多谢了一行代码,没看到,谢谢
作者:
会飞的狼
时间:
2013-8-13 13:45
心灵之歌 发表于 2013-8-13 10:31
看了张老师的打印数组例子后试着用迭代的方式打印多维数组,可是结果里面出现了很多地址值(还是什么其他的 ...
我多谢了一行代码 不好意思 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2