Java中对象数组的缺点/局限性

对象数组的缺点

1)我们应该提前知道尺寸,每次可能都不可能

示例1:声明具有大小的对象数组

class ObjectArrays {
	public static void main(String[] args){
		Object[] a = new Object[10];
		System.out.println(a[0]);
	}
}

输出(描述)

在这里,对象数组的大小为10,并且我们正在打印对象数组的第一个元素,因此我们将获得null作为输出,因为Object []是一个Object,并且如果不提供任何值,则默认情况下Objects包含null。

E:\javasource>java ObjectArrays
null

示例2:声明没有大小的对象数组

class ObjectArrays {
	public static void main(String[] args){
		Object[] a = new Object[];
		System.out.println(a[0]);
	}
}

输出(描述)

在这里,对象数组没有大小,并且我们正在打印对象数组的第一个元素,因此我们将获得编译时错误,因为在Object []中,大小是强制性的,我们无法实例化没有大小的对象数组。

E:\javasource>javac ObjectArrays.java
ObjectArrays.java:8: array dimension missing
                                Object[] a = new Object[];
                                                         ^
1	error

2)对象数组不能为每种需求提供支持的现成方法。(即程序员负责为这种要求编写逻辑)。

示例1:声明具有大小的对象数组

class ObjectArrays {
	public static void main(String[] args){
		Object[] a = new Object[10];
		System.out.println(a[0].add("A"));
	}
}

输出(描述)

在此,add()方法将提供错误,而它不提供现成的工具。

E:\javasource>javac ObjectArrays.java
ObjectArrays.java:9: cannot find symbol
symbol  : method add(java.lang.String)
location: class java.lang.Object
                                System.out.println(a[0].add("A"));
								^
1	error

3)不建议使用明智的内存对象数组。

它可以容纳同质和异质元素,而其他数组只能容纳同质元素。

示例1:声明具有大小的对象数组

class ObjectArrays {
	public static void main(String[] args){
		Object[] a = new Object[10];
		a[0]   = new Integer[10];
		a[1]   = new Boolean[10];
		System.out.println(a[0]);
		System.out.println(a[1]);
	}
}

输出(描述)

在此,对象数组可以容纳不同或相同类型的对象。在此程序中,对象类toString()方法将以[电子邮件保护] _十六进制代码(即Integer; @ 360be0)的格式调用和打印输出。

E:\javasource>java ObjectArrays
[Ljava.lang.Integer;@360be0
[Ljava.lang.Boolean;@45a877