ArrayList和LinkedList

原创 2016年08月28日 16:25:44

单向链表由若干同类型的结点串接而成。每个结点包括两个域,即数据域和指针域。数据域保存实际数据,指针域指向下一结点。尾结点指针域为空(NULL),表示链表结束。若尾结点的指针域指向首结点,则构成环形链表。数组和链表有类似功能,具体区别如下:


数组优于链表的:

  1. 内存空间占用的少。因为链表节点会附加上一块或两块下一个节点的信息.但是数组在建立时就固定了.所以也有可能会因为建立的数组过大或不足引起内存上的问题.

  2. 数组内的数据可随机访问。但链表不具备随机访问性.这个很容易理解.数组在内存里是连续的空间.比如如果一个数组地址从100到200,且每个元素占用两个字节,那么100-200之间的任何一个偶数都是数组元素的地址.可以直接访问.链表在内存地址可能是分散的.所以必须通过上一节点中的信息找能找到下一个节点。

  3. 查找速度上。这个也是因为内存地址的连续性的问题,不罗索了。

链表优于数组的:

  1. 插入与删除的操作。如果数组的中间插入一个元素,那么这个元素后的所有元素的内存地址都要往后移动。删除的话同理.只有对数据的最后一个元素进行插入删除操作时,才比较快。链表只需要更改有必要更改的节点内的节点信息就够了。并不需要更改节点的内存地址。

  2. 内存地址的利用率方面。不管你内存里还有多少空间,如果没办法一次性给出数组所需的要空间,那就会提示内存不足,磁盘空间整理的原因之一在这里.而链表可以是分散的空间地址。

  3. 链表的扩展性比数组好。因为一个数组建立后所占用的空间大小就是固定的.如果满了就没法扩展。只能新建一个更大空间的数组.而链表不是固定的,可以很方便的扩展。
版权声明:本文为博主原创文章,未经博主允许不得转载。

java集合框架05——ArrayList和LinkedList的区别

前面已经学习完了List部分的源码,主要是ArrayList和LinkedList两部分内容,这一节主要总结下List部分的内容。 List概括 先来回顾一下List在Collection中的的框架图...
  • eson_15
  • eson_15
  • 2016年04月13日 20:39
  • 10547

比较ArrayList、LinkedList、Vector

LinkedList的add和remove性能比ArrayList高,你确定?
  • renfufei
  • renfufei
  • 2013年12月02日 18:11
  • 42161

【Java】 ArrayList与LinkedList的区别

LinkedList与ArrayList的区别
  • yingpaixiaochuan
  • yingpaixiaochuan
  • 2015年10月08日 18:07
  • 940

Java中arraylist和linkedlist源码分析与性能比较

Java中arraylist和linkedlist源码分析与性能比较 1,简介 在java开发中比较常用的数据结构是arraylist和linkedlist,本文主要从源码角度分析arraylis...
  • weibin_6388
  • weibin_6388
  • 2016年04月05日 14:17
  • 618

ArrayList和LinkedList的面试题

一、ArrayList为什么是线程不安全的? ArrayList在添加一个元素的时候,它可能会有两步来完成: 1. 在 Items[Size] 的位置存放此元素; 2. 增大 Size 的值。 在...
  • shenjingjune
  • shenjingjune
  • 2016年09月19日 23:20
  • 989

小谈面试时面试官为什么问ArrayList,LinkedList与List的不同

当你做为一个技术面试官面试应聘者时,你总是想尝试能全面了解这个面试者的方方面面。技术,背景,性格都是被重点关注的。面试官想在短暂的面试过程中多了解应聘者,那就要有明确的目的性。但是一般面试官不会只是简...
  • yuyanjun123
  • yuyanjun123
  • 2016年06月22日 16:29
  • 442

ArrayList和LinkedList优缺点比较

一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,...
  • hdblocal
  • hdblocal
  • 2016年08月01日 15:25
  • 1022

ArrayList和linkedlist之间的转换

强制数据类型转换是不行的,因为类ArrayList与类LinkedList不是父子类关系。 但可以通过构造方法转换 ArrayList arrayList = new ArrayLis...
  • zziamalei
  • zziamalei
  • 2014年08月24日 17:13
  • 3901

android区别——ArrayList和LinkedList

LinkedList和ArrayList的差别主要来自于Array和LinkedList数据结构的不同。ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,所以最大的缺点...
  • chuntiandejiaobu10
  • chuntiandejiaobu10
  • 2016年08月29日 09:28
  • 1086

ArrayList 和LinkedList的排序问题

两者的排序本身的结构决定的: Java SE提供的LinkedList其实是一种双向链表,每个节点都保存上一个和下一个节点的地址。双向链表就像火车和火车的各节车厢。在插入时,把新车厢的前后固定点在原...
  • zhaohefeijava
  • zhaohefeijava
  • 2014年02月21日 11:30
  • 2527
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ArrayList和LinkedList
举报原因:
原因补充:

(最多只允许输入30个字)