02-java类库(集合类)
2016-06-19 22:44
281 查看
50、说出ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的区别
ArrayList,Vector:底层都是以数组方式存储,增删慢,查改快
ArrayList: 初始化容量:10,线程不安全,速度快 synchronizedList
扩容方法: oldCapacity + (oldCapacity >> 1); 1.5倍
Vector: 初始化容量:10,线程安全,速度慢;扩容方法:n*3/2+1
int newCapacity = oldCapacity + ((capacityIncrement > 0) ?capacityIncrement : oldCapacity); 2倍
数组
1.每一个元素的空间大小一样,内存地址存储是联系的状态
2.
3.底层有个数学表达式(算法)
数组特点:为了保证连续空间,要在内存中找到一块连续的空间,是很难的 数组是无法存储大数据的
数组的特点:
1、在添加删除的时候要频繁的移动内存 所以添加删除速度慢
2、数组有索引,可以直接通过索引来查询数据 所以查询速度快
LinkedList:底层以双向链表方式存储;查改慢,增删快 内存
因为链表在内存中是串不可连续的空间,所以查询慢
因为链表在添加或删除数据的时候,不需要移动内存空间,所以添加或删
除速度快;
HashSet(无序不可重复的):底层是一个HashMap
2.HashMap:初始化容量:16,加载因子0.75,是以单向链表加数组的结构存储的 是线程不安全,速度快;
Hashtable:线程安全,速度慢
两个都实现了Map接口
SortedMap
TreeMap
ArrayList,Vector:底层都是以数组方式存储,增删慢,查改快
ArrayList: 初始化容量:10,线程不安全,速度快 synchronizedList
扩容方法: oldCapacity + (oldCapacity >> 1); 1.5倍
Vector: 初始化容量:10,线程安全,速度慢;扩容方法:n*3/2+1
int newCapacity = oldCapacity + ((capacityIncrement > 0) ?capacityIncrement : oldCapacity); 2倍
数组
1.每一个元素的空间大小一样,内存地址存储是联系的状态
2.
3.底层有个数学表达式(算法)
数组特点:为了保证连续空间,要在内存中找到一块连续的空间,是很难的 数组是无法存储大数据的
数组的特点:
1、在添加删除的时候要频繁的移动内存 所以添加删除速度慢
2、数组有索引,可以直接通过索引来查询数据 所以查询速度快
LinkedList:底层以双向链表方式存储;查改慢,增删快 内存
因为链表在内存中是串不可连续的空间,所以查询慢
因为链表在添加或删除数据的时候,不需要移动内存空间,所以添加或删
除速度快;
HashSet(无序不可重复的):底层是一个HashMap
2.HashMap:初始化容量:16,加载因子0.75,是以单向链表加数组的结构存储的 是线程不安全,速度快;
Hashtable:线程安全,速度慢
两个都实现了Map接口
SortedMap
TreeMap
相关文章推荐
- Spring学习(二十四)Spring实现AOP
- 20145206邹京儒《Java程序设计》课程总结
- Maven项目中提示:Eclipse “cannot be resolved to a type” error
- JavaSE复习_8 泛型程序设计
- 20145329 《Java程序设计》课程总结
- 学习android笔记(8):解决eclipse 找不到project.properties文件的终极办法
- Java的21个技术点和知识点归纳
- Java界的神器-使用Lombok来消除你的冗余代码量
- 【GOF23设计模式】_责任链模式_公文审批_供应链系统的采购审批_异常链_过滤器和拦截器调用过程JAVA243
- MyBatis-整合Spring
- Resin4 java.lang.IllegalStateException: block Block问题解决方案
- 20145216《java程序设计》课程总结
- 20145219 《Java程序设计》第16周课程总结
- 20145316许心远《Java学习笔记(第8版)》课程总结
- HeyWeGo小组《Java程序设计》 2015—2016年学期团队项目总结
- MyEclipse-自定义文档注释模板
- Android 项目在Eclipse中的目录结构
- 20145302张薇《Java程序设计》第十六周课程总结
- JavaWeb应用中使用JavaMail发送邮件
- eclipse快捷键整理