首先Array是数组,而ArrayList是集合
一:数组的空间大小不同
Array的长度在定义后是不可改变的,如果这时候我们需要在数组中添加其他的元素的时候,就必须要新建一个数组且数组长度比原数组长度多一,然后再把数组中的内容复制到新数组中,最后再根据下标添加需要的内容。
package Snow;
import java.util.Arrays;
public class Demo2 {
public static void main(String[] args) {
/**
* Array 添加元素方法
*
* */
// 数组添加元素的第一种方法
// 添加一个整数88
int n = 88;
// 定义一个数组
int[] num = {12,22,14,11,67,97};
// 添加元素,首先拷贝原数组,并且,数组长度为原数组加一
int[] newNum = new int[num.length+1];
// 查看数组长
// 循环拷贝
for (int i = 0; i < num.length; i++) {
newNum[i] = num[i];
}
newNum[newNum.length-1] = n;
System.out.println(Arrays.toString(newNum));
// 数组添加元素的第二种方法
// 可以直接通过系统提供的数组工具类来添加;
int[] newNums = Arrays.copyOf(num, num.length+1);
// 直接拷贝复制省去循环添加的代码
newNums[newNums.length -1] = n;//赋值
System.out.println(Arrays.toString(newNums));
}
}
ArrayList的长度是可变的,java程序中子带了添加方法,可以自动新增一个数组并且添加完后会自动抛弃旧数组。并且,每次添加新数组的时候都会自动检查数组中的空间是否足够
二:储存内容不同
Array可以包含基本类型和对象类型
ArrayList只能包含对象类型
需要注意的一点是,Array在储存时,只能储存同一种数据类型,如果定义的是整数类数组,那么这个数组中就只能存储整数。而ArrayListZ在存储整数数据类型的时候,会吧整数变成Object