• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rockss
V2EX  ›  程序员

Java 中 ArrayList 和 LinkedList 查找指定元素,哪个效率高?

  •  
  •   rockss · Dec 26, 2018 · 6036 views
    This topic created in 2870 days ago, the information mentioned may be changed or developed.
    10 replies  •  2018-12-27 16:04:23 +08:00
    Vamposine
    Vamposine
    Dec 26, 2018 via iPhone❤️1
    1
    这不是基础么,指定位置必须是 arraylist 效率高
    feiyuanqiu
    feiyuanqiu
    Dec 26, 2018
    2
    contains ?复杂度是一样的。它们的差异在 java.util.List#get 和 java.util.List#add(int, E)
    insomnia1232
    insomnia1232
    Dec 26, 2018
    3
    遍历查找的话 没啥区别
    V2exUser
    V2exUser
    Dec 26, 2018 via Android❤️1
    4
    查找的话,底层是数组的效率高,因为内存区是连续的。
    exonuclease
    exonuclease
    Dec 26, 2018
    5
    都是 O(n)吧 如果不是排好序的
    jmc891205
    jmc891205
    Dec 26, 2018
    6
    无序的话是同样的时间复杂度
    有序的话是 ArrayList 好
    kiddult
    kiddult
    Dec 26, 2018
    7
    不管什么情况都是 ArrayList,ArrayList 占内存连续便宜,CPU 缓存比较吃香
    mrsatangel
    mrsatangel
    Dec 26, 2018
    8
    ArrayList 的 cache locality 更好
    rockss
    rockss
    OP
    Dec 27, 2018
    9
    补充一下,是查找指定的元素(不是通过下标)

    所以看起来 ArrayList 还是有一定的优势的(不过在时间复杂度分析上,应该没多大区别了)
    zhix
    zhix
    Dec 27, 2018
    10
    因为 Cache Line 的存在,所以严格来说 ArrayList 的遍历速度更快一些。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4140 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 130ms · UTC 00:22 · PVG 08:22 · LAX 16:22 · JFK 19:22
    ♥ Do have faith in what you're doing.