• 第四周作业


    Java集合类Vector,LinkedList,ArrayList的区别与联系:

    最近刷题经常用到这三个集合类,所以就对其细节方面产生了兴趣,想一探究竟,于是写了这篇随笔以作记录。

    答:1.从同步性来讲,在多线程中,Vector可以同步,ArrayList和LinkedList不能简单的进行synchronized同步,需要和其他内容进行封装才能同步。

          2.从操作效率来讲,Vector和ArrayList都是基于Array的,无法脱离Array的限制,因此对其进行插入或者删除操作都会影响后面的元素,必如,共有n个元素,要在第i个位置插入或者删除一个元素,那么后面n-i个元素都要进行移动,效率比较低。而LinkedList不是基于Array的,它脱离了Array的限制,增加或者删除元素只对一个元素和该元素的前后两个节点产生影响,不会对其他元素产生影响,效率比较高。

         3.从内存存储方式来讲,Vector和ArrayList是线性存储,即是连续的存储,而LinkedList不是线性存储,它的存储节点比较分散,一个几点包含该节点的存储数据和下一个节点有 关的信息,类似c/c++中的指针。

         4.Vector较ArrayList来说,都是用数组实现的,但因为Vector可以同步,因此性能不如ArrayList。

         5.Vector和ArrayList比较适合查询操作,LinkedList比较适合插入/删除操作。

  • 相关阅读:
    C语言1博客作业03
    C语言1博客作业02
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    第一次作业(重做)
  • 原文地址:https://www.cnblogs.com/suyaoxing/p/5324168.html
Copyright © 2020-2023  润新知