比较Java中的array和ArrayList
1)Java中的数组
1)数组的大小是固定的(即,我们不能在运行时增加或减少大小)。
示例
class ArrayClass { public static void main(String[] args){ int[] a = new int[10]; System.out.println(a[0]); } }
输出结果
E:\javasource>java ArrayClass 0
2)对于内存点,不建议使用数组的概念(即,如果我们对小于数组大小的元素使用内存,则数组大小是固定的,这样会浪费内存)。
3)在性能方面,建议使用数组数组的概念(即我们事先知道数组的大小或在编译时知道数组的大小,因此在运行时没有开销,因此花更少的时间)。
4)数组可以容纳同类数据元素(即,数组元素属于同一类型)。
示例
class ArrayClass { public static void main(String[] args){ int[] a = new int[10]; a[0] = new boolean[10]; System.out.println(a[0]); } }
输出结果
E:\javasource>javac ArrayClass.java ArrayClass.java:8: incompatible types found : boolean[] required: int a[0] = new boolean[10]; ^ 1 error
5)数组不提供现成的方法支持,这就是为什么我们可以调用数组的原因,因为数组不是基础数据结构。
6)数组能够保存原语(字节,短整数,整数,长整数等)和对象(包装类,字符串,StringBuffer或任何用户定义的类)。
示例1:对于对象类型
class ArrayClass { public static void main(String[] args){ Integer[] a = new Integer[10]; System.out.println(a[0]); } }
输出结果
E:\javasource>java ArrayClass null
示例2:对于基元类型
class ArrayClass { public static void main(String[] args){ int[] a = new int[10]; System.out.println(a[0]); } }
输出结果
E:\javasource>java ArrayClass 0
2)Java中的ArrayList
ArrayList本质上是可增长的(即,我们可以在运行时增加或减小大小)。
示例
import java.util.*; class ArrayListClass { public static void main(String[] args){ ArrayList al = new ArrayList(2); al.add(10); al.add(20); System.out.println(al); al.add(30); System.out.println(al); } }
输出结果
E:\javasource>java ArrayListClass [10, 20] [10, 20, 30]
鉴于存储点的情况下的ArrayList建议使用(即ArrayList的大小不是固定的存储器将根据要被分配的ArrayList元素大小)。
在性能方面,不建议使用ArrayList(即我们不预先知道ArrayList的大小或在编译时不让其使用,假设最初为10个元素分配了内存,然后作为第11元素分配了新的内存,所有元素将被复制到新的内存中)。
ArrayList可以容纳同构和异构数据元素(即ArrayList元素可以具有不同的类型)。
示例
import java.util.*; class ArrayListClass{ public static void main(String[] args){ ArrayList al = new ArrayList(10); al.add("A"); al.add("true"); System.out.println(al); } }
输出结果
E:\javasource>java ArrayListClass [10, true]
ArrayList提供现成的方法支持,这就是为什么我们可以调用ArrayList作为基础数据结构的原因。
示例
import java.util.*; class ArrayListClass{ public static void main(String[] args){ ArrayList al = new ArrayList(10); al.add("A"); al.add("true"); al.remove(1); System.out.println(al.size()); } }
输出结果
加(),remove()
,size()
等等都是现成方法。
E:\javasource>java ArrayListClass 1