Java array和ArrayList,Array和ArrayList之间的区别

本文概述

在Java中, array和ArrayList是众所周知的数据结构。数组是Java提供的基本功能, 而ArrayList是Java Collections框架的一类。它属于java.util包。

Java数组

数组是动态创建的对象。它用作容纳不变数量的相同类型的值的容器。它具有连续的内存位置。创建数组后, 我们将无法更改其大小。我们可以使用以下语句创建一个数组:

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 , Collection , Iterable , Cloneable, Serializable和RandomAccess接口。它扩展了AbstractList 类。

我们可以使用以下语句创建ArrayList的实例:

ArrayList arrayList=new ArrayList();

ArrayList由Java中的数组内部支持。 ArrayList中的调整大小操作会降低性能, 因为它涉及新阵列并将内容从旧阵列复制到新阵列。它调用本机实现的方法System.arraycopy(sec, srcPos, dest, destPos, length)。

我们无法将原始类型存储在ArrayList中。因此, 它仅存储对象。它将自动将原始类型转换为对象。例如, 我们创建了一个ArrayList对象,

ArrayList list=new ArrayList();//object of ArrayList

arrayObj.add(12);//trying to add integer primitive to the ArrayList

JVM通过自动装箱将其转换为Integer对象。

ArrayList arrayObj=new ArrayList()//object of ArrayList

arrayObj(new Integer(12)); //converts integer primitive to Integer object and added to ArrayList object

相似之处

Array和ArrayList都用于存储元素。

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始终是一维的。

Java中的数组示例

在下面的示例中, 我们仅创建了一个长度为4的数组。

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

{

System.out.println(arr[i]);

}

}

}

输出:

12

2

15

67

Java中ArrayList的示例

在以下示例中, 我们创建了ArrayList的实例并在ArrayList上执行迭代。

import java.util.*;

public class ArrayListExample

{

public static void main(String args[])

{

//creating an instance of ArrayList

List list = new ArrayList();

//adding element to arraylist

list.add(12.4f);

list.add(34.6f);

list.add(56.8f);

list.add(78.9f);

//iteration over ArrayList using for-each loop

for(Float f:list)

{

System.out.println(f);

}

}

}

输出:

12.4

34.6

56.8

78.9

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值