本文概述
- Java数组
- Java ArrayList类
- 相似之处
- Java中的数组示例
- Java中ArrayList的示例
Java数组【Array和ArrayList之间的区别】数组是动态创建的对象。它用作容纳不变数量的相同类型的值的容器。它具有连续的内存位置。创建数组后, 我们将无法更改其大小。我们可以使用以下语句创建一个数组:
int array[]=new int[size];
上面的语句创建一个指定大小的数组。当我们尝试添加的大小超过其大小时, 它将引发ArrayIndexOutOfBoundsException。例如:
int arr[]=new int[3];
//specified size of array is 3//adding 4 elements into array arr[0]=12;
arr[1]=2;
arr[2]=15;
arr[3]=67;
Java ArrayList类在Java中, ArrayList是Collections框架的一类。它实现List < E> , Collection < E> , Iterable < E> , Cloneable, Serializable和RandomAccess接口。它扩展了AbstractList < E> 类。
我们可以使用以下语句创建ArrayList的实例:
ArrayList<
Type>
arrayList=new ArrayList<
Type>
();
ArrayList由Java中的数组内部支持。 ArrayList中的调整大小操作会降低性能, 因为它涉及新阵列并将内容从旧阵列复制到新阵列。它调用本机实现的方法System.arraycopy(sec, srcPos, dest, destPos, length)。
我们无法将原始类型存储在ArrayList中。因此, 它仅存储对象。它将自动将原始类型转换为对象。例如, 我们创建了一个ArrayList对象,
ArrayList <
Integer>
list=new ArrayList<
Integer>
();
//object of ArrayListarrayObj.add(12);
//trying to add integer primitive to the ArrayList
JVM通过自动装箱将其转换为Integer对象。
ArrayList arrayObj=new ArrayList()//object of ArrayListarrayObj(new Integer(12));
//converts integer primitive to Integer object and added to ArrayList object
相似之处
- Array和ArrayList都用于存储元素。
- Array和ArrayList都可以存储空值。
- 它们可以具有重复的值。
- 它们不保留元素的顺序。
基础 | 数组 | 数组列表 |
---|---|---|
Definition | 数组是动态创建的对象。它用作容纳不变数量的相同类型的值的容器。它具有连续的内存位置。 | ArrayList是Java Collections框架的一类。它包含诸如Vector, HashTable和HashMap之类的流行类。 |
静态/动态 | 数组的大小是静态的。 | ArrayList的大小是动态的。 |
Resizable | 数组是固定长度的数据结构。 | ArrayList是可变长度的数据结构。可以在需要时自行调整大小。 |
Initialization | 在直接或间接初始化数组时, 必须提供数组的大小。 | 我们可以创建ArrayList的实例而无需指定其大小。 Java创建默认大小的ArrayList。 |
Performance | 由于大小固定, 它与ArrayList相比执行速度更快。 | ArrayList由Java中的数组内部支持。 ArrayList中的调整大小操作会降低性能。 |
原始/通用类型 | 数组可以存储对象和基元类型。 | 我们无法将原始类型存储在ArrayList中。它将自动将原始类型转换为对象。 |
Iterating Values | 我们使用for循环或每个循环来遍历数组。 | 我们使用迭代器遍历ArrayList。 |
Type-Safety | 我们不能将泛型与数组一起使用, 因为它不是数组的可转换类型。 | ArrayList允许我们仅存储泛型/类型, 这就是为什么它是类型安全的。 |
Length | 数组提供了一个长度变量, 它表示数组的长度。 | ArrayList提供size()方法来确定ArrayList的大小。 |
添加元素 | 我们可以使用赋值运算符在数组中添加元素。 | Java提供了add()方法以在ArrayList中添加元素。 |
Single/ Multi-Dimensional | 数组可以是多维的。 | ArrayList始终是一维的。 |
public class ArrayExample{public static void main(String args[]){//creating an array of integer type int arr[]=new int[4];
//adding elements into array arr[0]=12;
arr[1]=2;
arr[2]=15;
arr[3]=67;
for(int i=0;
i<
arr.length;
i++){System.out.println(arr[i]);
}}}
输出:
1221567
Java中ArrayList的示例在以下示例中, 我们创建了ArrayList的实例并在ArrayList上执行迭代。
import java.util.*;
public class ArrayListExample{ public static void main(String args[]) { //creating an instance of ArrayListList<
Float>
list = new ArrayList<
Float>
();
//adding element to arraylistlist.add(12.4f);
list.add(34.6f);
list.add(56.8f);
list.add(78.9f);
//iteration over ArrayList using for-each loopfor(Float f:list){System.out.println(f);
}} }
输出:
12.434.656.878.9
推荐阅读
- HashMap和TreeMap之间的区别
- Java中的ConcurrentModificationException
- Java中的ClassLoader
- 什么是CompletableFuture()
- Java中的ArrayIndexOutOfBoundsException
- 从Oracle数据库检索图像的示例
- Android开发——diglog cancel与dismiss方法区别
- CSAPP 3e: Bomb lab (phase_4)
- 上传到App Store时5.5寸图和iPad pro图报错