阵列和ArrayList之间的区别是什么 ,这在初学者中是很常见的问题,尤其是那些开始用C和C++编码并喜欢使用阵列的人?数组和数组列表 ,都是用来存储元素的,如果是数组,可以是原始元素,也可以是对象,如果是数组列表 ,则只有对象。Java中Array与ArrayList的主要区别在于Array的静态性质和ArrayList的动态性质。一旦创建,你就不能改变数组的大小,但ArrayList 可以在需要时调整自己的大小。
ArrayList 和Array 的另一个明显区别 是Array是Java核心编程的一部分,在Java中具有特殊的语法和语义支持,而 ArrayList 是集合框架的一部分,与其他流行的类如Vector、Hashtable、HashMap或LinkedList一样。
让我们来看看 Java中Array和 ArrayList 的一些区别 ,以便更好地理解。
Java中的Array与ArrayList
- Java中 Array和 ArrayList 的第一个主要区别 是:Array是一个固定长度的数据结构 ,而ArrayList 是一个可变长度的集合类 。一旦在Java中创建了Array,你就不能改变它的长度,但是ArrayList 会根据容量和负载因素,在满的时候调整自己的大小。
由于 ArrayList 在内部是由Java中的Array支持的,所以 ArrayList 中的任何调整大小的操作 都会降低性能,因为它涉及到创建一个新的Array并将内容从旧数组复制到新数组。
2) Java中 Array和 ArrayList 的另一个区别 是,你不能和Array一起使用泛型 ,因为Array实例知道它能容纳什么样的类型, 如果你试图存储不能转换为Array类型 的类型,会抛出 ArrayStoreException 。 ArrayList 允许你使用泛型来确保类型安全。
-
你也可以比较Array和 ArrayList ,如何计算Array的长度或ArrayList的大小 。所有类型的Array都提供length 变量,表示Array的长度,而ArrayList 提供 size() 方法来计算 Java中ArrayList 的大小 。
-
ArrayList 和Array 的另一个主要区别 是,你不能在ArrayList中存储基元,它只能包含对象。而Array在Java中可以同时包含基元和对象。尽管Java 5的自动排版 可能会给你一种在ArrayList中存储基元的印象 ,但它实际上会自动将基元转换为对象。
ArrayList<Integer> integerList =new ArrayList<Integer>();
integerList.add(1); //这里我们没有在ArrayList中存储基元,相反,自动搜索会将int基元转换为Integer对象。
- Java提供了 add() 方法来插入一个元素到 ArrayList 中 ,你可以简单地使用赋值操作来存储元素到Array中,例如,为了将Object存储到指定的位置,使用
Object[] objArray =new Object[10];
objArray[1]=new Object()。
- Array与 ArrayList 的另一个区别 是,你可以 在不指定大小的情况下创建 ArrayList 的实例 ,Java将以默认大小创建Array List,但在创建时必须提供Array的大小,无论是直接还是间接地在创建Array时初始化它。顺便说一下,你也可以在创建ArrayList 时初始化它。
以上就是关于Java中 Array和 ArrayList 的区别 的全部内容。在性能方面 ,如果你知道索引, Array和 ArrayList 在添加或获取元素方面提供了相似的性能。
虽然 ArrayList 的自动调整大小 可能会减慢插入速度,但Array和 ArrayList 都 是Java的核心概念,任何严肃的Java程序员都必须熟悉Array和 ArrayList 之间的这些区别 ,或者更普遍的Array与List的区别。
你可能会发现其他的Java ArrayList 教程 很有用
