数组和ArrayList的区别
程序员的首要责任之一就是有效地管理数据。各种各样的数据结构可以帮助程序员处理数据。
数组数据结构已经存在很长时间了,并且是用于存储数据最常见的数据结构之一。数组易于实现是其广泛应用的主要原因之一。这使得新手更容易理解这种数据结构。
ArrayList是Java集合框架中提供的附加功能之一。在本文中,我们将探讨Java中数组和ArrayList的所有异同。
什么是数组?
数组是一种简单的线性数据结构,它在连续的内存位置存储其元素,每个元素都具有相同的名称但具有不同的索引号。数组中存储的所有数据必须是相同类型。声明数组后,其大小不能更改。
语法
Datatype array_name = new datatype[size of array];
示例
Int Test_Array = new int[100];
什么是ArrayList?
ArrayList与强类型集合不同,这是数组与ArrayList的不同之处之一。它是一个可调整大小的数组,可以在java.util包中找到。它可以存储相同或不同类型的数据。可以动态地增加或减少其大小以容纳任何大小和任何数据类型的任何值。
ArrayList提供了一个简单易用的值列表。您会发现ArrayList实现了IList接口,因为它与数组兼容。它允许您修改、添加、插入、删除或查看您输入的数据类型。
使用Java中的get( )方法,您可以访问已创建的ArrayList的任何元素。
语法
ArrayList Object_name=new ArrayList();
示例
ArrayList Test_Arrlst = new ArrayList ( ); Arrlst.Add (“Sam”); Arrlst.Add (“300”); Arrlst.Add (“null”);
数组和ArrayList的比较
下表突出显示了数组和ArrayList的主要区别:
比较依据 | 数组 | ArrayList |
---|---|---|
定义 | 数组是一种简单的线性数据结构,它在连续的内存位置存储其元素,每个元素都具有相同的名称但具有不同的索引号。数组中存储的所有数据必须是相同类型。声明数组后,其大小不能更改。 | ArrayList是Java集合框架中的动态数据结构。它包含相同类型的元素。在这种情况下,我们不需要指定列表的长度。 |
静态/动态 | 数组是静态的 | ArrayList是动态的 |
可调整大小 | 固定长度 | 可调整大小 |
初始化 | 初始化数组时,需要指定数组的大小。 | 不需要提及ArrayList的大小。 |
性能 | 数组更快 | ArrayList较慢 |
泛型类型 | 数组可以存储原始数据和对象,但不能存储泛型。 | ArrayList可以存储泛型和对象,但不能存储原始类型数据。 |
迭代 | 仅允许循环。 | 允许使用循环和迭代器。 |
类型安全 | 不是类型安全的。 | 是类型安全的。 |
长度 | 使用length属性 | 使用size()方法 |
添加元素 | 使用赋值运算符添加。 | ArrayList使用add()方法添加元素 |
单/多维 | 可以是单维或多维的。 | 只能是单维的。 |
结论
数组是低级数据结构这一事实可能导致某些人认为在程序中实现数组比使用ArrayLists更快。但是,速度可能因程序执行的操作而异。
就功能而言,ArrayList略胜于Array,因为ArrayList的大小可以动态增加或减少,而Array的长度始终相同。
尽管它们不同,但在其他方面仍然相似。Java中的这些数据结构都是基于索引的,并且允许您存储对象。此外,这两种数据结构都允许空值和重复值。如果您事先知道对象的大小,则应使用数组;但是,如果您不确定大小,则应使用ArrayList。