zoukankan      html  css  js  c++  java
  • ArrayList与LinkedList

      ArrayList与Linkedlist的增删改查问题以及集合选择问题

    线程:安全:Vector

       不安全:ArrayList,LinkedList

            增删多:LinkedList

            查询多:ArrayList

       1. ArrayList为什么查询快:

           底层是数组,在内存中开辟空间,是连续的,查询时可以直接定位到查询的位置(根据偏移量查询)

       LinkedList为什么查询慢:

           因为LinkedList是底层是链表,查询时单链表是[元素|下一个元素地址这种结构]只能从第一个依次开始查,在Java中LinkedList是双连边结构[上一个元素地址|元素|下一个元素地址]这种结构查询时,判断指针是距离首端近还是尾端近,离首近则从第一个开始查询,否则从末尾开始。(速度有所提高),越是查询的是中间元素速度越慢。

      2.ArrayList为什么增删慢:

          增删时因为是数组结构当删除一个元素是其他元素都要移动,就是慢的原因,当然在末尾增加就没有这个问题也会快一些。

      LinkedListt为什么增删快:

          增删时时链表结构,在内存中结构元素存储不连续增删时最多影响两个元素。就是快的原因。

         加油:           

  • 相关阅读:
    道德经 剪裁重组版 v1.1
    摸索出来的学习经典的一种方法
    小玩意儿之Gitlab 代码提交日志同步到禅道项目管理系统
    个人职业发展模型
    善小
    学习英文
    物欲
    理解newid()和newsequentialid()
    ubuntu14.04设置静态ip
    .Net 调式案例—实验4 高CPU(High CPU)回顾
  • 原文地址:https://www.cnblogs.com/meani/p/11252962.html
Copyright © 2011-2022 走看看