集合大家族异同点比较

vector和arraylist

1.vector是线程同步的,是线程安全的;而arraylist是线程异步的,是不安全的。

2.如果集合目前元素个数大于集合长度,vector的增长率是当前数组长度的100%,而arraylist是50%

3.查找一个指定位置元素的值时,vector和arraylist时间复杂度都是0(1),移动一个指定位置的元素和插入数据时应该考虑linkedlist

 

arraylist和linkedlist

1.arraylist是基于动态数组的数据结构,而linkedlist是双向链表。

2.对于随机访问get和set,arraylist优于linkedlist因为linkedlist要移动指针

3.若只对单条数据插入或删除,ArrayList 的速度反而优于 LinkedList。但若是批量随机的插入删除数据,LinkedList 的速度大大优于 ArrayList. 因为 ArrayList 每插入一条数据,要移动插入点及之后的所有数据

4.与 ArrayList 一样,LinkedList 也是非同步的。如果多个线程同时访问一个 List,则必须自己实现访问同步。一
种解决方法是在创建 List 时构造一个同步的 List:List list = Collections.synchronizedList(new LinkedList(…));

hashmap和treemap

HashMap 通过 hashcode 对其内容进行快速查找,而 TreeMap 中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用 TreeMap(HashMap 中元素的排列顺序是不固定的)。

 

hashtable和hashmap

1.hashtable是线程同步的额,而hashmap不是。

2.只有 HashMap 可以让你将空值作为一个表的条目的 key 或value。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值