输入:
public static void main(String[] args) {
Set set=new HashSet();
set.add(new Light(1,8,7,7));
set.add(new Light(2,9,9,9));
set.add(new Light(3,8,8,8));
set.add(new Light(4,3,7,6));
set.add(new Light(5,7,5,9));
Iterator it=set.iterator() ;
while (it.hasNext()) {
System.out.println(it.next());
}
}
控制台输出:
MyClass.Light@70dea4e
MyClass.Light@15db9742
MyClass.Light@6d06d69c
MyClass.Light@4e25154f
这输出的是是集合元素的地址
System.out.println(obj); 输出打印实际是输出obj.toString()方法, 任何对象都是默认继承Object对象的toString方法,toString的默认实现
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
想要输出自定义对象内容可以重写toString方法, 或者将对象转成json字符串(可以用fastjson, JSON.toJSONString(obj))输出
重写Light这个对象的toString()方法即可,无需转json