List的三个子类的特点

因为三个类都实现了List接口,所以里面的方法都差不多,那这三个类都有什么特点呢?

ArrayList:
底层数据结构是数组,查询快,增删慢。
线程不安全,效率高。
Vector:
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
Vector相对ArrayList查询慢(线程安全的)
Vector相对LinkedList增删慢(数组结构)
LinkedList:
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
这个三个子类有什么区别和共同点?

Vector和ArrayList的区别

Vector是线程安全的,效率低
ArrayList是线程不安全的,效率高
共同点:都是数组实现的

ArrayList和LinkedList的区别

ArrayList底层是数组结果,查询和修改快
LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢
共同点:都是线程不安全的

在开发中使用哪个?

查询多用ArrayList
增删多用LinkedList
如果都多ArrayList
Vector基本上不再使用了,效率比较较低。

ArrayList线程安全的方案
如果使用ArrayList去替代Vector的话,需要考虑线程安全的问题,有两种方案:

可以使用Collections工具类中的synchronizedList方法可以将ArrayList变成线程安全的

List list = Collections.synchronizedList(new ArrayList());
使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样

最新文章

  1. Unity3d中C#使用指针(Unsafe)的办法(转)
  2. 34-Ajax辅助方法
  3. linux 下文件的比较
  4. 旧版QT的名称:qt-win-commercial-4.4.3-vc60.exe
  5. C#和Java中执行SQL文件脚本的代码(非常有用)
  6. Strusts2--课程笔记5
  7. ubuntu vi编辑insert时上下左右建为ABCD
  8. 域名解析>>"记录类型" 说明
  9. 【小白学爬虫连载(10)】–如何用Python实现模拟登陆网站
  10. 使用Owin的WebApi,并分离Controllers
  11. 公共的JS组件-告别CURD
  12. treesoft,couchDB,
  13. vfile.hpp
  14. php 安装最新的redis连接扩展
  15. 洛谷P4578 [FJOI2018]所罗门王的宝藏(dfs)
  16. python基础-----异常问题
  17. 虚拟机下 centos7 无法连接网络
  18. 【Java深入研究】6、CGLib动态代理机制详解
  19. Commons工具包的使用
  20. 导出类成员里含有stl对象

热门文章

  1. hihocoder #1122 二分图二•二分图最大匹配之匈牙利算法(*【模板】应用 )
  2. Codeforces Round #374 (Div. 2) C. Journey —— DP
  3. Java接口测试之使用有道翻译API
  4. python 实用pickle序列化
  5. Objective-C学习之解析XML
  6. 测试jdbc连接下,mysql和mycat的吞吐性能
  7. 记录一个读pcap数据包的软件:Fiddler
  8. 51Nod - 1295:XOR key (可持久化Trie求区间最大异或)
  9. SPOJcot2 Count on a tree II (树上莫队)
  10. vue-cli创建项目 一直downloading解决办法