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一样

转载于:https://www.cnblogs.com/zhuifeng-mayi/p/10131141.html

24、List三个子类的特点相关推荐

  1. 利用多态特性,创建一个手机类Phones,定义打电话的方式call,创建三个子类,并在各自的方法中重写方法,编写程序入口main()方法,实现多种手机打电话...

    |--需求说明 利用多态特性,创建一个手机类Phones,定义打电话的方式call,创建三个子类,并在各自的方法中重写方法,编写程序入口main()方法,实现两种手机打电话 |--解题思路 采用简单工 ...

  2. 第三次学JAVA再学不好就吃翔(part80)--List三个子类的特点

    学习笔记,仅供参考 集合 List的三个子类的特点 ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector 底层数据结构是数组,查询快,增删慢. 线程安全,效率低 ...

  3. Java_基础—List的三个子类的特点

    List的三个子类的特点 ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安全,效率低. - Vector相 ...

  4. 【python】定义一个“曲调类”Note,value属性表示声音的高低 Note的三个子类分别表示高音、低音和中音定义一个“乐器类”Instrument具有play()方法

    # 定义一个"曲调类"Note,value属性表示声音的高低 # a. Note的三个子类分别表示高音.低音和中音 # b. 定义一个"乐器类"Instrume ...

  5. 集合框架(List的三个子类的特点)

    List:(面试题List的子类特点) ArrayList: 底层数据结构是数组,查询快,增删慢. 线程不安全,效率高. Vector: 底层数据结构是数组,查询快,增删慢. 线程安全,效率低. Li ...

  6. 4月20日—4月24日三年级课程

    三年级课程表 时间 周一 周二 周三 周四 周五 9:00-9:25 语文 数学 语文 数学 英语 9:30-9:40 眼操 眼操 眼操 眼操 眼操 9:40-10:00 运动 运动 运动 运动 运动 ...

  7. java 面试题三十三 子类父类方法执行顺序的问题

    . 判断以下Teacher类的main方法的运行结果(B) public class Teacher extends Person { public Teacher () { super(); } p ...

  8. SECTION 24 面向对象编程(三)

    面向对象编程 24.1 再谈绑定和方法调用 24.1.1 核心笔记:self 是什么? 24.1.2 调用绑定方法 24.1.2 调用未绑定方法 24.2 静态方法和类方法 24.2.1 静态方法 2 ...

  9. java hashmap api_JAVA基础学习-集合三-Map、HashMap,TreeMap与常用API

    一.Map简述 1.1.简述 public interface Map 类型参数:K - 此映射所维护的键的类型 keyV - 映射值的类型 value该集合提供键--值的映射.key不能重复,一对对 ...

  10. 985硕,阿里、字节、美团三面,拿下阿里P6+字节offer

    6.1号开始投简历,7.6号开始第一场面试,9.30号收到最后一家意向书,我的秋招结束了! 找工作期间薅了网上不少大佬的羊毛,特别感谢期间给予帮助的各位前辈们.在此记录下秋招的全过程,也算是对帮助我的 ...

最新文章

  1. Window7系统 中常见的进程命令分析?
  2. Quest Spotlight On Oracle 很牛的监控软件
  3. 最优化学习笔记(四)共轭梯度法
  4. weka使用训练集分类测试集_科学网—使用独立测试集对分类模型进行评估 - 李向东的博文...
  5. WebService之Java原生态支持(二)
  6. 中国百亿富人达315位:马云身价超3千亿,每小时净赚超上市公司高管年薪
  7. 使用WindowsXP中的网桥功能
  8. java案例代码12--随机码--静态类的使用
  9. ZooKeeper 会话的秘密 快偷偷过来瞧一瞧!!!
  10. python启动方法_python启动服务
  11. 一文了解全面静态代码分析
  12. 测试用例-----遥控器
  13. uni-app个人中心页开发
  14. Jmeter应用-接口测试
  15. 大数据有哪些基本特征?
  16. threejs在墙上挖洞_在墙上飞
  17. nltk,wordnet安装时出现问题关于omw-1.4
  18. spark:Action算子:show()
  19. 2021牛客寒假算法基础集训营1
  20. 一、JSX语法的基本使用

热门文章

  1. wordpress 表格文字对齐_掌握Word对齐技巧,排版又快又美观
  2. ai 文案_AI是UX文案的未来吗?
  3. 用于小儿肺炎检测的无代码AI
  4. 你确认退出吗 html,按退出会 执行2次弹出确认窗口,为何?
  5. thinkphp mysql 原生_第七节:thinkphp6数据库设计和原生查询
  6. java面试jquery问题_20个最常见的jQuery面试问题及答案
  7. python 桌面数据库_python数据库操作笔记
  8. 聊聊flink JobManager的High Availability
  9. ElasticSearch笔记整理(三):Java API使用与ES中文分词
  10. html5 figure 标签