欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

#源码分析篇--Java集合操作(9)重写顺序表的toString()方法,

来源: javaer 分享于  点击 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();
}

相关文章

    暂无相关文章

用户点评