![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合类
MarkUpppp
这个作者很懒,什么都没留下…
展开
-
LinkedList的方法分析
可以看出来LinkedList不仅实现了List接口,还实现了Deque(双端队列),这使得LinkedList可以实现队列的一些特性// 成员变量:header是一个entry实例,既然知道linkedlist是实现了链表结构,header // 显然是头结点,而且可以看出来,header并不用于存放元素,而是为其他元素提供一个初始 // 位置 private transient Entry<E>原创 2017-03-26 23:36:51 · 254 阅读 · 0 评论 -
HashMap的原理分析(1)put方法的实现
V put(K key, V value)方法实现 public V put(K key, V value) { // 如果entry[]为空,那么要进行初始化 if (table == EMPTY_TABLE) { inflateTable(threshold); } // 如果key为空,那么调用put空key的方法 if原创 2017-03-20 20:23:27 · 397 阅读 · 0 评论 -
HashMap的原理分析(2)get和remove方法的实现
public V get(Object key) { // 如果key为空,用get空key方法处理 if (key == null) return getForNullKey(); // 计算key的hash值 int hash = hash(key.hashCode()); // in原创 2017-03-20 23:19:08 · 1974 阅读 · 0 评论 -
ArrayList的add和remove方法
public boolean add(E e) { // 根据所需长度和现有的size对数组进行扩容 ensureCapacityInternal(size + 1); // size是elementData数组长度,加一则是add这个操作所需的长度 elementData[size++] = e; return true; }privat原创 2017-03-21 17:27:27 · 1564 阅读 · 0 评论 -
ArrayList的其他部分方法分析
// 不带参数的构造,直接给一个空数组,等待add的时候再扩容 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA; } // 很好理解,一目了然 public ArrayList(int initialCapacity) { if (initialCapacit原创 2017-03-22 02:02:15 · 203 阅读 · 0 评论 -
使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
转自:http://www.cnblogs.com/liuling/p/2013-8-21-04.html 在使用Iterator来迭代遍历List的时候如果修改该List对象,则会报java.util.ConcurrentModificationException异常,下面看一个例子演示: 1 package com.others; 2 3 import转载 2017-03-29 16:10:01 · 309 阅读 · 0 评论