ArrayList、LinkedList、Vector区别?

1、ArrayList

非线程安全的;

底层数据结构是数组Object[];

初始化容量是10,扩容到原容量的1.5倍;

检索效率比较高,向数组末尾添加元素效率高,随机增删元素效率低;

2、LinkedList

非线程安全的;

底层数据结构是双向链表;

检索效率低,随机增删效率高;

链表中元素的内存地址不连续;

3、Vector

线程安全的(Vector所有方法都有synchronized关键字修饰,效率较低);

底层数据结构是数组Object[];

初始化容量是10,扩容到原容量的2倍;

4、如何将ArrayList集合转换成线程安全的?

使用集合工具类java.util.Collections;区别于集合接口java.util.Collection;

List myList = new ArrayList();

Collections.synchronizedList(myList);//将myList变成线程安全的;

myList.add("111");//myList集合就是线程安全的了;

myList.add("222");

全部评论

相关推荐

点赞 评论 收藏
分享
叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务