Java 集合

 

1、List

List:有序, 可重复, 有索引。三者均为可伸缩数组

Vector:底层数据结构是数组结构。 jdk1.0版本。 线程安全的。 无论增删还是查询都非常慢。默认扩充为原来的2倍。

ArrayList:底层数据结构是动态数组结构。 线程不安全的。 所以ArrayList的出现替代了Vector, 但是查询的速度很快。默认扩充为原来的1.5倍。对于随机访问get和set,ArrayList觉得优于LinkedList。

LinkedList:底层是链表数据结构。 线程不安全的, 同时对元素的增删操作效率很高。但查询慢

注意: 链表结构是这样的: 让后一个元素记住前一个元素的地址。  

Vector 和  ArrayList都是基于存储元素的Object[ ] array来实现的。

LinkedList是采用双向列表来实现的。

  • 线程同步,Vector线程安全,ArrayList线程不安全。
  • 效率问题,Vector效率低,ArrayList效率高。
  • 增长数量,Vector以1.5倍增长,ArrayList以2倍增长。

2、Set

HashSet:HashSet是通过HasMap来实现的,HashMap的输入参数有Key、Value两个组成,在实现HashSet的时候,保持HashMap的Value为常量,相当于在HashMap中只对Key对象进行处理。

TreeSet:TreeSet底层就是一个TreeMap,但是Value值为一个虚拟值,实现了Set接口。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值