我正在使用Java中的数组,我有一个问题.我知道Java中的数组是类似数据类型的集合,如下所示:
int[] x = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)
上面的声明可以读作一个Integer数组,它是整数类型的集合.
考虑一下:
Object[] x = new Object[]{1,2,3,"srk"};
Run Code Online (Sandbox Code Playgroud)
在这里,我可以说上面是一个数组,它是一个不相似的数据类型的集合,还是一个Object类似数据类型的数组,即对象?
我对此感到困惑和持怀疑态度.在Java中,是否可以创建一个可以容纳不同数据类型的数组或任何类型的集合?
M S*_*ach 30
Java中的所有对象都扩展了Object.
因此,通过将数组声明为对象数组来创建数组时,可能完全不具有描述性:
Object[] arr = new Object[6];
Run Code Online (Sandbox Code Playgroud)
此代码创建长度为6的对象数组.
因此,例如,您可以创建一个数组,其中条目成对出现.在这种情况下,第一个对象是String,第二个是Integer.
Object[] arr = new Object[6];
arr[0] = new String("First Pair");
arr[1] = new Integer(1);
arr[2] = new String("Second Pair");
arr[3] = new Integer(2);
arr[4] = new String("Third Pair");
arr[5] = new Integer(3);
Run Code Online (Sandbox Code Playgroud)
现在,如果你想真正弄清楚这些对象是什么,那么它将需要一个强制转换:
int x = (Integer)arr[1];
Run Code Online (Sandbox Code Playgroud)
要添加到其他答案中,您可以将所需的任何内容放入对象数组中。但是,如果您希望访问Object特定元素具有的任何未与 共享的方法或属性,那么您必须将其向下转换为所需的类型,因为 Java 会将其识别为类型Object- 这是您必须小心的事情和。
例子:
Object test[];
test = new Object[]{1, 2, "three", new Date()};
System.out.println( ( (Date)test[3] ).getMonth() );
// the above line will output '4', but there will be a compilation error
// if the cast (Date) is emitted
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61235 次 |
| 最近记录: |