Java教程

Java基础 - List的两个子类的特点

本文主要是介绍Java基础 - List的两个子类的特点,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

List两个子类的特点

List的两个子类的特点

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

  • ArrayList:

    底层数据结构是数组,查询快,增删慢。

  • LinkedList:

    底层数据结构是链表,查询慢,增删快。

这个两个个子类有什么区别和共同点?

  • ArrayList和LinkedList的区别

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

在开发中使用哪个?

查询多用ArrayList
增删多用LinkedList
如果都多ArrayList

ArrayList线程安全的方案

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

  • 可以使用Collections工具类中的synchronizedList方法可以将ArrayList变成线程安全的
    List list = Collections.synchronizedList(new ArrayList());
    
  • 使用java.util.concurrent包下面的CopyOnWriteArrayList,使用方式跟ArrayList一样

 

  Tips: 这里本来比较它的三个子类的 因为 听说 vector 现在过时了? (底层: 数组 效率慢 但线程安全)

  文档出处 - 小猴子1024 博客

这篇关于Java基础 - List的两个子类的特点的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!