集合框架(源码)
来源:互联网 发布:云计算产业孵化器 编辑:程序博客网 时间:2024/06/15 23:32
Map:HashMap HashTable LinkedHashMap TreeMap
List: ArrayList LinkedList Vector
Set:HashSet LinkedHashSet TreeSet
Map接口
List接口:
ArrayList
一 用transient Object[] elementData来存储元素
1 为什么用transient来存储元素:
(1)ArrayList中有一个扩容因子,如果用11个元素的话,这个elementData中会有15个元素(newSize = oldSize + oldSize << 1),size虽然还是11,但是elementData中的有15个元素,4个为null的空元素。这样持久化就会造成不必要的开销。
(2)在ArrayList中有readObject和writeObject,用size来判断,不会造成持久化多余的空的元素。
二 Iterator()方法
1 ArrayList用了一个内部类Itr implements Iterator
2 hashNext() 中判断 cursor != size
3 next返回element(cursor) ,然后cursor++
LinkedList
与ArrayList区别在于,用链表来存储元素(方便增删)
vector
也是用数组来存储,只不过在增删改取出元素的方法上加了synchronized关键字
Set接口
HashSet
用HashMap来存储元素(所以)
TreeSet
阅读全文
0 0
- 集合框架(源码)
- JDK源码【集合框架】HashMap
- JDK源码【集合框架】list
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- 【Java集合源码剖析】Java集合框架
- Java 集合框架源码分析-集合框架概述
- 虚拟机下CentOS7开启SSH连接 (主要是网络配置 sshd 下载)
- Servlet&Jsp概念
- 网页中多个 table 嵌套的一些小技巧
- 44.最小子数组
- Codeforces Round #435 (Div. 2) A-C题解+D代码
- 集合框架(源码)
- 面试题54. 表示数值的字符串
- SpringBoot学习笔记01
- 二层交换机和三层交换机的区别
- Axis2创建WebService实例
- Effective Java(使可变性最小化)
- Sublime text Version3.0,build3143 授权码/注册码
- HashMap的遍历(学习)
- Spring MVC 实现文件的上传和下载