数组的简单认识
简单理解java数组,就是可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变,这里的它们就是数组。
数组的特殊性
在java中有很多方式去持有对象,那么数组的与众不同点在哪里?
数组与其他种类的容器区别有三个方面:效率、类型和保存基本类型的能力。
在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性序列,这使得元素访问非常迅速。但是为之付出的代价就是数组对象的大小被固定,并且在其生命周期中不可改变。
在泛型之前,其他的容器类在处理对象时,都将它们视作没有任何具体类型。也就是说,它们将这些对象都当作java中的所有类的根类Object处理。数组之所以优于泛型之前的容器,就是因为我们可以创建一个数组去持有某种具体类型。
数组可以持有基本类型,而泛型之前的容器则不能。但是有了泛型,容器就可以指定并检查它们所持有对象的类型,并且有了自动包装机制,容器看起来还能够持有基本类型。
下面引入数组与泛型容器比较的示例代码:
//: arrays/ContainerComparison.java import java.util.*; import static net.mindview.util.Print.*; class BerylliumSphere { private static long counter; private final long id = counter++; public String toString() { return "Sphere " + id; } } public class ContainerComparison { public static void main(String[] args) { BerylliumSphere[] spheres = new BerylliumSphere[10]; for(int i = 0; i < 5; i++) spheres[i] = new BerylliumSphere(); print(Arrays.toString(spheres)); print(spheres[4]); List<BerylliumSphere> sphereList = new ArrayList<BerylliumSphere>(); for(int i = 0; i < 5; i++) sphereList.add(new BerylliumSphere()); print(sphereList); print(sphereList.get(4)); int[] integers = { 0, 1, 2, 3, 4, 5 }; print(Arrays.toString(integers)); print(integers[4]); List<Integer> intList = new ArrayList<Integer>( Arrays.asList(0, 1, 2, 3, 4, 5)); intList.add(97); print(intList); print(intList.get(4)); } } /* Output: [Sphere 0, Sphere 1, Sphere 2, Sphere 3, Sphere 4, null, null, null, null, null] Sphere 4 [Sphere 5, Sphere 6, Sphere 7, Sphere 8, Sphere 9] Sphere 9 [0, 1, 2, 3, 4, 5] 4 [0, 1, 2, 3, 4, 5, 97] 4 *///:~
时间: 2024-10-13 12:29:47