数组(array)和数组表(arraylist)的区别

Array和ArrayList都是Java程序中常用的基于索引的数据结构。从概念上讲,ArrayList在内部是由数组支持的,然而,理解两者之间的区别是成为优秀Java开发人员的关键。这是最基本的一步,尤其是刚开始编写代码的初学者。虽然两者都用于在Java中存储元素,可以是原语,也可以是对象,但它们在功能和性能方面有着相当大的差异。两者的主要区别在于Array是静态的,而ArrayList本质上是...

什么是数组和数组列表(array and arraylist)?

Array和ArrayList都是Java程序中常用的基于索引的数据结构。从概念上讲,ArrayList在内部是由数组支持的,然而,理解两者之间的区别是成为优秀Java开发人员的关键。这是最基本的一步,尤其是刚开始编写代码的初学者。虽然两者都用于在Java中存储元素,可以是原语,也可以是对象,但它们在功能和性能方面有着相当大的差异。两者的主要区别在于Array是静态的,而ArrayList本质上是动态的。本文从各个方面对两者进行了比较,以便您可以从中进行选择。

数组(array)和数组表(arraylist)的区别

数组与arraylist的区别

  1. 可调整大小

这两种数据结构之间的一个主要且值得注意的区别是,Array本质上是静态的,这意味着它是一种固定长度的数据类型,而ArrayList本质上是动态的,这意味着它是一种可变长度的数据结构。从技术上讲,一旦创建了Array对象,就不能更改或修改Array的长度。它包含相同数据类型的元素的顺序集合。java中的数组与C++中的函数不同。另一方面,ArrayList可以调整自身大小,数组可以根据需要增长。由于它是一个动态数据结构,因此可以从列表中添加和删除元素。

  1. 仿制药

您不能在Java中创建接口的泛型类的数组,因此数组和泛型不能并行不悖,因此无法创建泛型数组,因为数组是协变的,而泛型是不变的。虽然数组是固定长度的数据结构,但它包含同一类的对象或特定数据类型的原语。因此,如果在创建Array对象时尝试存储不同于指定数据类型的数据类型,它只会抛出“ArrayStoreException”。另一方面,ArrayList支持泛型以确保类型安全。

  1. 原语

ArrayList中不允许使用int、double、long和char等基本数据类型。它持有对象,在Java中,原语不被视为对象。另一方面,数组在Java中既可以保存原语,也可以保存对象,因为它是Java中存储对象最有效的数据结构之一。它是一种聚合数据类型,设计用于保存可以是相同类型或不同类型的对象。

  1. 长度

为了获得数组的长度,代码需要访问length属性,因为在数组上执行操作时必须知道长度。虽然ArrayList使用size()方法来确定ArrayList的大小,但它与确定数组的长度有很大的不同。size()method属性决定ArrayList中元素的数量,而元素的数量又是ArrayList的容量。

数组(array)和数组表(arraylist)的区别

例如:

公共类排列长度测试{

public static void main(字符串[]args){

ArrayList arrList=新建ArrayList();

String[]items={“一”,“二”,“三”};

for(字符串str:items){

arrList.add(str);

}

int size=items.size();

System.out.println(大小);

}

}

  1. 实施

Array是Java中的一个本地编程组件,它是动态创建的,它们使用赋值操作符来保存元素,而ArrayList使用add()属性来**元素。ArrayList是Java集合框架中的一个类,它使用一组指定的方法来访问和修改元素。ArrayList的大小可以动态增加或减少。数组中的元素存储在连续的内存位置,其大小始终保持不变。

  1. 性能

虽然这两种数据结构提供的性能与ArrayList由数组支持的性能类似,但在CPU时间和内存使用率方面,两者相比有一点优势。比如说,如果你知道数组的大小,你很可能会选择ArrayList。但是,在数组上迭代要比在ArrayList上迭代快一些。如果程序包含大量的原语,那么数组在时间和内存方面都会比ArrayList表现得更好。数组是一种低级编程语言,可以在集合实现中使用。但是,性能可能会因所执行的操作而异。

数组与数组列表

数组 阵列列表
数组是一种固定长度的数据结构,一旦创建了数组对象,就不能修改其长度。 ArrayList本质上是动态的,这意味着它可以调整自身大小以在需要时增长。
数组的大小在整个程序中保持不变。 ArrayList的大小可以根据负载和容量动态增长。
它使用赋值运算符来存储元素。 它使用add()属性**元素。
它可以包含原语以及相同或不同数据类型的对象。 ArrayList中不允许使用原语。它只能包含对象类型。
数组和泛型不能并行不悖。 ArrayList中允许使用泛型。
数组可以是多维的。 ArrayList是一维的。
它是一个本机编程组件,其中元素存储在连续的内存位置。 它是Java集合框架中的一个类,对象从不存储在相邻的位置。
长度变量用于确定数组的长度。 Size()方法用于确定ArrayList的大小。
用于存储指定元素或对象的内存比ArrayList少。 需要比数组更多的内存来存储对象。
迭代数组比迭代ArrayList快。 就性能而言,迭代ArrayList要慢得多。

总结

虽然有些人可能认为在程序中实现数组比在ArrayList中实现数组更快,原因很简单,因为数组是低级数据结构,但性能可能会因执行的操作而异。嗯,数组的长度是固定的,而ArrayList的大小可以动态地增加或减少,因此ArrayList在功能上比数组有一点优势。然而,尽管存在差异,它们也有一些共同点。它们都是Java中基于索引的数据结构,允许存储对象,并且都允许空值和重复值。好吧,如果你事先知道对象的大小,你应该使用数组,如果你不确定大小,就使用数组列表。

  • 发表于 2021-06-25 03:21
  • 阅读 ( 655 )
  • 分类:IT

你可能感兴趣的文章

数组表(arraylist)和双链表(linkedlist)的区别

关键区别–arraylist与linkedlist 集合对于存储数据很有用。在普通数组中,数组大小是固定的。有时需要创建可以根据需要增长的阵列。Java等编程语言有集合。它是一个包含一组类和接口的框架。它充当一组元素的容器。集合...

  • 发布于 2020-10-19 11:43
  • 阅读 ( 229 )

数组(arrays)和链接列表(linked lists)的区别

数组与链接列表 数组是存储元素集合的最常用的数据结构。大多数编程语言都提供了方法来轻松地声明数组和访问数组中的元素。链表,更确切地说是单链表,也是一种可以用来存储元素集合的数据结构。它由一系列节点组...

  • 发布于 2020-11-05 09:04
  • 阅读 ( 172 )

如何使用java arraylist

JavaArrayList是一个通用的可调整大小的数组。它提供了其他语言中数组通常需要的大部分功能。这些操作包括:使用索引访问元素、添加、删除和更新元素、动态重新调整大小、对元素进行迭代等。这些操作中的大多数都经过了...

  • 发布于 2021-03-13 20:41
  • 阅读 ( 204 )

数组表(arraylist)和矢量(vector)的区别

ArrayList与Vector 向量实现的数组可以在运行时在添加或删除某些元素时进行增长/收缩。使用整数索引访问其元素。两个字段–容量和容量增量,是矢量存储管理的特征。它实现了四个接口:*列表*随机访问*可克隆*可串行化接口 ...

  • 发布于 2021-06-23 18:41
  • 阅读 ( 236 )

列表(list)和数组表(arraylist)的区别

...是他们,有什么区别(they, and what’s the difference)? List和ArrayList是Java和C语言中的一些代码,允许您设置和调用参数。在坚果壳里。困惑的?我也是。下一段时间你需要一些知识。 通常,List是一个用于ArrayList或LinkedList的接口。列...

  • 发布于 2021-06-24 03:08
  • 阅读 ( 215 )

数组列表(array list)和链表(linked list)的区别

...们看看这两种存储机制的Java语法。 数组列表创建: List arraylistsample=new ArrayList(); 将对象添加到阵列列表: Arraylistsample.add(“name1”); Arraylistsample.add(“name2”); 这就是结果数组列表的样子–[name1,name2]。 链表创建:...

  • 发布于 2021-06-25 00:29
  • 阅读 ( 320 )

数组(array)和数组表(arraylist)的区别

什么是数组和数组列表(array and arraylist)? Array和ArrayList都是Java程序中常用的基于索引的数据结构。从概念上讲,ArrayList在内部是由数组支持的,然而,理解两者之间的区别是成为优秀Java开发人员的关键。这是最基本的一步,尤...

  • 发布于 2021-06-25 03:21
  • 阅读 ( 655 )

数组(array)和一串(string)的区别

两者之间的主要区别在于数组可以具有任何长度的任何数据类型,而字符串通常是以空字符“\0”结尾的ASCII字符。两者在不同编程语言中的实现方式都有很大的不同。数组和字符串在java中的工作方式与C++中的工作方式非常不同...

  • 发布于 2021-06-25 10:17
  • 阅读 ( 1389 )

堆栈(stack)和数组(array)的区别

...们有多种方法来存储和检索计算机程序中的信息。堆栈和数组是面向对象编程语言中最常用的两种数据存储方式。当然,可以用数组实现堆栈。然而,两者之间的主要区别是准入。 什么是堆栈(stack)? 堆栈是一种线性的、类似...

  • 发布于 2021-06-25 15:17
  • 阅读 ( 324 )

数组(array)和指针(pointer)的区别

数组和指针的主要区别在于,数组是一种数据结构,它存储相同数据类型的元素集合,而指针是一个变量,它在计算机内存中保存另一个变量的地址。 数组和指针是C语言和C++语言中使用的两个概念。数组是一组数据,其中包含...

  • 发布于 2021-06-30 23:59
  • 阅读 ( 682 )
unso5398
unso5398

0 篇文章

相关推荐