HashMap没有使用考虑并发问题,必然是线程不安全的。
HashMap1.7每一个桶使用的是单向链表实现。而扩容采取的是头插法。
1.什么是头插法?
链表反转的迭代写法就是经典的头插法
例如链表:1——>2
设反转后为:reverse=null;
那么依次取链表的节点插入反转后的头部,并把当前节点赋给resvese就是头插法。
下面是简要代码:
class ListNode {
...
public ListNode reverseNode(ListNode root){
ListNode reverse = null;
while(root != null) {
ListNode temp = root.next;
root.next = reverse;
reverse = root;