Java的集合框架
集合的分类
可以分为单列集合和双列集合
单列集合主要有Collection下面的List与Set,其中List最长被用到的是ArrayList与LinkedList以及Vctor三种 Set最常用的是我们的HashSet以及TreeSet linkedHashSet可以使Set有序(插入与输出)
Collection都可以使用迭代器进行迭代
UML 类图如下
双列集合Map是基类
Map集合下常用的有HashMap与ConcurrentHashMap 、TreeMap、以及LinkedHashMap(保证插入的顺序与输出的顺序一致)
类图如下
ArrayList的源码解析
1、无参构造方法第一次构建创建的数组使{} 没有值 长度是0
list第一次添加元素,不管什么时候添加元素都会查看是需要进行扩容
计算所需要的容量第一次默认是数组大小是10
grow()是进行扩容的方法除了第一次默认是10 以后每一次都是扩容1.5倍
如果使用有参构造方法的话每次以后每次扩容1.5倍 不演示调试截图了
- 代码整理
// 存储数据的集合
transient Object[] elementData; // non-private to simplify nested class access
private