在上一篇的基础上HashMap重写(1)HashMap实现了put()方法增加键值对,重写一下toString()方法
/**
* 重写toString()
*
* @return
*/
@Override
public String toString() {
//{10:aa, 20:bb}
StringBuilder sb = new StringBuilder("{");
//遍历table数组
for (int i = 0; i < table.length; i++) {
Node2 temp = table[i];
//遍历链表
while (temp != null) {
sb.append(temp.key + "=" + temp.value + ", ");
temp = temp.next;
}
}
sb.setCharAt(sb.length() - 1, '}');
return sb.toString();
}
相信仔细读了这个专栏博文的童鞋,应该很容易理解上面的代码。在ArrayList重写toString()中,我们是对数组操作,在重写LinkedList中的toString() 方法中,我们是对链表的操作。
这里我们是需要结合起来就行,具体的思路是先遍历table[ ]数组,然后再遍历链表。最后是用StringBuilder存起来,返回就行了。
运行结果: