比较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 error5)数组不提供现成的方法支持,这就是为什么我们可以调用数组的原因,因为数组不是基础数据结构。
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