ArrayList直接继承AbstractList,实现了List、 RandomAccess、Cloneable、Serializable接口,为什么叫"ArrayList",因为ArrayList内部是用一个数组存储元素值,相当于一个可变大小的数组,也就是动态数组。 (1)继承和实现继承了Abs
分类:
编程语言 时间:
2016-03-15 18:59:43
阅读次数:
268
工作中每天都会和java集合打交道,虽然以前也看过jdk源码的实现,但有些东西时间长了还是会遗忘,或者有些实现在新版本中有了新的变化,俗话说"温故而知新",所以打算再阅读一下相关源码。java集合包含collection接口的子接口和实现类以及Map接口的子接口和实现两大块,首先先看看这两大块大致内...
分类:
编程语言 时间:
2015-12-06 17:25:12
阅读次数:
144
TreeMap 首先看下TreeMap的头部声明的两个变量,TreeMap的排序利用红黑树进行 ????/**
?????*?The?comparator?used?to?maintain?order?in?this?tree?map,?or
?????*?null?if?it?use...
分类:
编程语言 时间:
2015-09-01 18:36:17
阅读次数:
192
Map(接口) ????Map是一个独立的接口,内部包含一个Entry的接口,用于管理每个节点 public?interface?Map<K,V>{
????interface?Entry<K,V>?{
????
????}
} ? ?? ????AbstractMap 抽象...
分类:
编程语言 时间:
2015-09-01 17:08:59
阅读次数:
159
collection 为java集合的接口,collection的接口继承Iterable public?interface?Collection<E>?extends?Iterable<E> 没有自己在画类图了 找到网上有大哥画的关系图如下 上图中有个位置可能错了,AbstrctList...
分类:
编程语言 时间:
2015-08-31 17:42:43
阅读次数:
298
概述:
ConcurrentHashMap是HashMap的升级版,我们都知道HashMap是不可靠的,线程不安全的,而Hashtable在同步的时候又会将整张表都锁住,从而在多并发的情况下效率低下。于是ConcurrentHashMap出现了,综合了两者的优点,所以一直是高并发情况下开发者的首选,但是相对的,它也有自身的一些不足,我们来分析一下它的原理。
ConcurrentHash...
分类:
其他好文 时间:
2015-08-14 22:48:47
阅读次数:
173
为了分析ConcurrentHashMap,决定先分析一下Hashtable,两者都是线程安全的,必然会有不同的区别,Hashtable和HashMap也有很大的区别。
我们先来看看Hashtable吧。
成员变量:
//存储单链表表头的数组,和HashMap中类似
private transient Entry[] table;
//Hashtable中实际元素...
分类:
其他好文 时间:
2015-08-12 23:37:13
阅读次数:
152
Map如我们所知,存储的是键值对,它的基本单位是实现了Map.Entry的Node,Node 的属性如下:
static class Node implements Map.Entry {
final int hash;
final K key;
V value;
Node next;
}
看定义就能知道它的作用了,能够看到它存储...
分类:
编程语言 时间:
2015-05-13 00:57:20
阅读次数:
256
LinkedList是一个双端链表,他继承了AbstractSequentaiList,实现了List,Deque,Cloneable,和Serializable接口。Deque是双端队列的接口,LinkedList有记录头的 first 和 尾的 last,所以我们可以对队列的两端进行操作。它还实现了Cloneable和Serializeble接口,它们分别是实现队列进行拷贝和序列化的接口。...
分类:
编程语言 时间:
2015-04-25 21:15:27
阅读次数:
196