Java - Array 与 ArrayList 的分别

阅读时间: 10分钟

两者都是常用来创建array的方法,
虽然目的相同,但本质上却有很大差异。
本质上,
Array是Java中的基本功能。
而ArrayList就是Collection Framework的一部分。
因此就有着完全不同的使用方式!

创建方式不同
Array
是一个有固定大小的Array。
每次创建一个新的Array时,都需要为它设定一个大小。
而且在创建后,是不能再更改大小。
int arr[] = new int[10]

ArrayList
是一个有浮动大小的Array。
每次创建一个新的Array时,不需要为它设定大小。
因为在创建后,你可以随意更改它的大小。
另外,它是List interface的实作。
ArrayList arrL = new ArrayList();

新增元素及存取元素的方式不同
Array透过[]的方式新增元素而ArrayList就透过add()。
Array透过[]的方式存取元素而ArrayList就透过get()。

import java.util.ArrayList; import java.util.Arrays;   class ArrayTest {     public static void main(String args[])     {         /* Array */        int[] arr = new int[2]; // 新增元素到Array        arr[0] = 1;         arr[1] = 2; // 存取元素        System.out.println(arr[0]);           /*ArrayList*/        ArrayList<Integer> arrL = new ArrayList<Integer>(2);        // 新增元素到ArrayList         arrL.add(1);         arrL.add(2);           // 存取元素         System.out.println(arrL.get(0));     } }

资料结构(Data type)的类别不同
Array 可以包含primitive data types 和object entities。
ArrayList 只可以包含object entries 但不支持primitive data types。

import java.util.ArrayList; import java.util.Arrays; class ArrayTest{     public static void main(String args[])     {        // 允许primitive data types        int[] array = new int[3];           // 允许 object entities        Test[] array1 = new Test[3];           // 不允许primitive data types// 当运行以下一句的code时,会出现error        ArrayList<char> arrL = new ArrayList<char>();           // 允许 object entities        ArrayList<Integer> arrL1 = new ArrayList<>();         ArrayList<String> arrL2 = new ArrayList<>();         ArrayList<Object> arrL3 = new ArrayList<>();     } }

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章