02-java类库(集合类)

50、说出ArrayList,Vector, LinkedList的存储性能和特性HashMap和Hashtable的区别

  1. 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值