黑马程序员技术交流社区
标题:
关于集合的小问题,求帮助
[打印本页]
作者:
D.reamJA
时间:
2014-10-23 12:35
标题:
关于集合的小问题,求帮助
public class test1 {
/**
* @param args
*/
public static void main(String[] args) {
List list1=new ArrayList();
list1.add("aa");
list1.add("bb");
System.out.println(list1); //[aa, bb]
List list2=new ArrayList();
list2.add(new person("haha"));
list2.add(new person("hhe"));
list2.add(new person("gaga"));
System.out.println(list2);//[person@10dc6b5, person@170bea5, person@f47396]
}
}
class person
{
private String name;
person(String name)
{
this.name=name;
}
}
复制代码
为什么第一次输出的是 具体内容
而第二次输出的是哈希值?
作者:
D.reamJA
时间:
2014-10-23 12:38
本帖最后由 D.reamJA 于 2014-10-23 12:40 编辑
后来想了一下,不知道对不对。List 是 存储对象的集合,在sop(list.toString)的时候是不是会逐个遍历list集合中的对象的toString方法?
person 没有复写tostring,所以会出现哈希值。
作者:
践行渐远
时间:
2014-10-23 12:51
ArrayList是继承了“类 AbstractCollection”的toString()方法,
--------在API文档中-------
类 AbstractCollection
toString
public String toString()返回此 collection 的字符串表示形式。该字符串表示形式由 collection 元素的列表组成,这些元素按其迭代器返回的顺序排列,并用方括号 ("[]") 括起来。相邻元素由字符 ", "(逗号加空格)分隔。通过 String.valueOf(Object) 可以将元素转换成字符串。
覆盖:
类 Object 中的 toString
返回:
此 collection 的字符串表示形式
----------------------------------------
正如楼主所言,Person类,确实是因为没有覆写toString()方法,所以打印的是哈希值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2