• Java中,ArrayList和LinkedList区别区分,简洁


    在Java中,ArrayList和LinkedList都是用来存储和管理数据的类

    ArrayList是Java中的一个类,它实现了List接口,是一种基于动态数组实现的集合类
    常用成员方法:
       ·构造方法:ArrayList()
       ·成员方法:add、remove、set、get、size
    底层原理:
    利用空参创建的集合,在底层创建一个默认长度为0的数组
    添加第一个元素时,底层会创建一个新的长度为10的数组存满时,会扩容1.5倍
    如果一次添加多个元素,1.5倍还放不下,则新创建数组的长度以实际为准
     

    LinkedList是Java集合框架中的一个双向链表实现类,可以用来存储一组有序的元素。LinkedList本身多了很多直接操作首尾元素的特有API
    常用成员方法

    addFirst、addLast、getFirst、getLast、removeFirst、removeLast
    底层原理:

    底层数据结构是双链表,查询慢,增删快,但是如果操作的是首尾元素,速度也是极快的。
     

    但它们在数据结构、性能和使用场景上有一些区别。

    1. 数据结构:

      ·ArrayList:基于动态数组实现。由于数组的连续存储特性,ArrayList在获取元素时速度较快,时间复杂度为O(1)。但是,在中间插入或删除元素时,由于数组的连续性,可能需要进行元素移动,所以时间复杂度为O(n)。

      ·LinkedList:基于双向链表实现。每个元素都是一个独立的对象,因此访问元素时需要从头节点开始遍历,所以时间复杂度为O(1)。在链表中间插入或删除元素时,只需修改相邻元素的引用,所以时间复杂度也为O(1)。

    2. 性能:

      ·在获取元素时,ArrayList通常比LinkedList更快。

      ·在插入和删除元素时,LinkedList通常比ArrayList更快。

    3. 使用场景:

      ·ArrayList:当你需要频繁地访问元素时,使用ArrayList更合适。例如,获取一个特定的元素或者对元素进行随机访问。

      ·LinkedList:当你需要频繁地在列表的开头或结尾插入或删除元素时,使用LinkedList更合适。例如,在队列中添加或删除元素。

    总的来说,选择ArrayList还是LinkedList主要取决于你的使用场景。

    如果你需要频繁地访问元素,那么ArrayList可能是更好的选择。

    如果你需要频繁地在列表的开头或结尾插入或删除元素,那么LinkedList可能更适合你。

  • 相关阅读:
    Solon v1.11.0 发布,Hello Java
    在Spring Boot中如何实现异常处理?
    An English-Chinese Chinese-English Glossary of Computer Science and Technology
    web网页设计与开发:基于HTML+CSS+JavaScript简单的个人博客网页制作期末作业
    手把手教你编写性能测试用例
    面了一个31岁的哥们,一看就背了很多面试题,一问三不知,还自认为很牛逼...
    基于PyTorch搭建你的生成对抗性网络
    13.求面积[有问题]
    DC电源模块的短期过载能力
    JavaScript操作BOM&DOM
  • 原文地址:https://blog.csdn.net/m0_70437378/article/details/134487663