1. 我们在写Java程序的时候有时候需要对某个对象进行操作了之后加入需要查看对象里面的属性的话需要重写Object类的toString方法,但是一般涉及到的是好几个属性,有的属性是没有进行初始化的,那么假如这个使用开发工具来自动生成toString方法的话,那么也会把那些空的属性的值也输出来,但是我们往往需要看不为空的属性这个时候就需要自己去根据具体情况来自己重写一下toString方法了
2. 下面分别使用数组实现线性表与链表实现线性表重写toString的方法
① 使用数组来实现线性表表重写的toString方法
@Override
public String toString() {
//重写Object的toString方法
//只输出不是空的元素值
StringBuilder sb = new StringBuilder("[");
for(int i = 0; i < size; i++){
sb.append(object[i]+ (i == size - 1 ? "" : " , "));
}
sb.append("]");
return sb.toString();
}
其中我们可以对数组或者其他数据结构存储的所有元素进行遍历,使用List,StringBuilder这些可以改变长度的数据结构来进行记录,最后返回返回对象的字符串表示就可以了
② 使用链表来实现线性表实现的toString方法
@Override
public String toString() {
StringBuilder sb = new StringBuilder("[");
ListNode p = first;
while(p != null){
sb.append(p.data);
if(p.next != null){
sb.append(" , ");
}
p = p.next;
}
sb.append("]");
return sb.toString();
}
其中主要是进行指针的移动来遍历元素,可以在加入元素的时候加入我们需要输出的格式,这样经过处理之后那么我们就只会输出不为空的元素