JAVA中数组与链表有什么区别?

发布网友

我来回答

6个回答

懂视网

数组和链表的区别如下:

  

  1、数组是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。最大的特点就是支持随机访问,但插入、删除操作也因此变得比较低效,平均情况时间复杂度为O(n)。在平时的业务开发中,我们可以直接使用编程语言提供的容器类,但是,如果是特别底层的开发,直接使用数组可能会更合适。

  

  2、链表它并不需要一块连续的内存空间,它通过“指针”将一组零散的内存,空间可扩容,比较常用的是单链表,双链表和循环链表。和数组相比,链表更适合插入、删除操作频繁的场景,查询的时间复杂度较高。不过,在具体软件开发中,要对数组和链表的各种性能进行对比,综合来选择使用两者中的哪一个。

  

  

热心网友

一、主体不同

1、数组:是有序的元素序列。将有限个类型相同的变量的集合命名。

2、链表:是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。


二、组成不同

1、数组:是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。

2、链表:由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。

三、特点不同

1、数组:所有元素都具有相同类型。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。

2、链表:可以克服数组链表需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。


参考资料来源:百度百科-链表

参考资料来源:百度百科-数组

热心网友

数组主要用于存储同一类型的数据,但是一个链表可存储人一类型的数据,且其空间可以自动变化。数组必须指定大小。还有数组主要用于查找简单,但是在数组中插入一个数字或删除一个数字就需要花很多时间,但链表则擅长于插入和删除。

热心网友

数组的特点就是访问指定元素很快:
但是使用数组的时候必须指定数组大小,所以…有时候不使用。

链表就不需要指定大小,但是访问元素还慢些。

热心网友

数组的大小一经指定,那么就是不可变的,但是链表可以通过add方法添加元素。

热心网友

数组就像身上编了号站成一排的人,要找第10个人很容易,根据人身上的编号很快就能找到。但插入、删除慢,要望某个位置插入或删除一个人时,后面的人身上的编号都要变。当然,加入或删除的人始终末尾的也快。

链表就像手牵着手站成一圈的人,要找第10个人不容易,必须从第一个人一个个数过去。但插入、删除快。插入时只要解开两个人的手,并重新牵上新加进来的人的手就可以。删除一样的道理。

Java中,ArrayList、LinkedList就是分别用数组和链表做内部实现的。
没有谁好谁坏,根据不同情况下,用适合自己的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com