您的位置:首页 > 编程语言 > Java开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: