1)数组的大小是固定的(即,我们不能在运行时增加或减少大小)。
例
class ArrayClass { public static void main(String[] args){ int[] a = new int[10]; System.out.println(a[0]); } }
输出(描述)
将为10个元素创建内存,并且所有元素初始都初始化为0(即,新的关键字创建对象),并且a [0]表示打印第一个元素值,即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]); } }
输出(描述)
a是int []类型的数组,因此它只能容纳int []个元素,但是我们在这里所做的工作a [0] = new boolean [10]意味着在int类型的数组中分配布尔值,因此如果我们在编译时出错写a [0] = new int [10]而不是a [0] = new boolean [10]然后没有错误。
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]); } }
输出(描述)
将为10个元素创建内存,并且所有元素初始都以null初始化(即,如果未定义,则默认情况下默认使用null初始化新的关键字创建对象和对象类型元素,而a [0]表示打印第一个元素值,即null。
E:\javasource>java ArrayClass null
示例2:对于基元类型
class ArrayClass { public static void main(String[] args){ int[] a = new int[10]; System.out.println(a[0]); } }
输出(描述)
将为10个元素创建内存,并且所有元素初始都初始化为0(即,新的关键字创建对象),并且a [0]表示打印第一个元素值,即0。
E:\javasource>java ArrayClass 0
1)集合本质上是可增长的(即我们可以在运行时增大或减小大小)。
示例
import java.util.*; class CollectionsClass { 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); } }
输出(描述)
最初,ArrayList的大小为2,然后添加2个元素,然后添加第三个元素,因此将创建新的ArrayList,因此新的容量=当前容量* 3/2 +1
E:\javasource>java CollectionsClass [10, 20] [10, 20, 30]
2)如果是内存观点,建议使用集合概念(即集合大小不是固定的),将根据集合元素的大小分配内存。
3)在性能方面,不建议使用集合概念(即我们不知道集合的大小或编译时的大小),假设最初为10个元素分配了内存作为第11元素,那么将再次分配新的内存被分配,所有元素将被复制到新的内存中)。
4)集合可以同时包含同质和异类数据元素(即,Collection元素可以具有不同的类型)。
示例
import java.util.*; class CollectionsClass { public static void main(String[] args){ ArrayList al = new ArrayList(10); al.add("A"); al.add("true"); System.out.println(al); } }
输出(描述)
ArrayList对象可以同时包含同质和异质元素,例如A是String类型,true是Boolean类型,两者都是不同的类型(异构)。
E:\javasource>java CollectionsClass [10, true]
5)集合提供现成的方法支持,这就是我们可以调用的原因,因为集合是基础数据结构。
示例
import java.util.*; class CollectionsClass { 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 CollectionsClass 1
6)集合只能容纳对象(包装类,字符串,StringBuffer或任何用户定义的类)类型。没有这样的原始功能。