#源码分析篇--Java集合操作(9)重写顺序表的toString()方法,
分享于 点击 3183 次 点评:220
#源码分析篇--Java集合操作(9)重写顺序表的toString()方法,
2.6.12 重写顺序表的toString()方法
默认情况下,普通类都是继承了Object超类的toString(),这个方法如下所示:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
在打印某个对象时,其实是省略了toString(),因此,很多情况下我们看到打印的对象都是类名@哈希码这种方式出现,你如果希望看到你期望看到的数据,那么你就需要重写toString():
@Override
public String toString() {
Iterator<E> it = iterator();
if (! it.hasNext())
return "[]";
StringBuilder sb = new StringBuilder();
sb.append('[');
for (;;) {
E e = it.next();
sb.append(e == this ? "(this Collection)" : e);
if (! it.hasNext())
return sb.append(']').toString();
sb.append(',').append(' ');
}
}
在上面的toString()方法中,使用到了iterator()迭代器方法,对我们的list进行遍历,最终我们打印list对象时,看到的结果形如[a, b, c]这种结果。当然,我们也可以自己来实现一个•toString()方法:
/***
* @functionName:toString
* @description:重写toString
* @author yzh
* @date 2019-01-01
* @return
*/
@Override
public String toString() {
if(myElementData == MYDEFAULT_ELEMENTDATA || myElementData.length == 0){
return "[]";
}
StringBuffer sbf = new StringBuffer("[");
for(int i = 0;i<this.size();i++){
sbf.append(this.get(i));
if(i != this.size()-1){
sbf.append(",");
}
}
sbf.append("]");
return sbf.toString();
}
相关文章
- 暂无相关文章
用户点评