手写一个简单的HashMap( 二 )

移除某个节点时 , 如果该key对应的index处没有形成链表 , 那么直接置为null 。 如果存在链表 , 我们需要将目标节点的前驱节点的next引用指向目标节点的后继节点 。 由于我们的Entry节点没有previous引用 , 因此我们要基于目标节点的前驱节点进行操作 , 即:
current.next = current.next.next;current代表我们要删除的节点的前驱节点 。
还有一些简单的size()、isEmpty()等方法都很简单 , 这里就不再赘述 。 现在 , 我们自定义的MyHashMap基本可以使用了 。
最后关于HashMap的实现 , 还有几点我们没有解决:
NullPointerException【手写一个简单的HashMap】相信大家自己完成了对HashMap的实现之后 , 对它的原理一定会有更深刻的认识 , 本文如果有错误或是不严谨的地方也欢迎大家指出 。 上述的问题我们接下来再逐步解决 , 至于红黑树 , 我也不会(摊手) 。