Java原始数据类型的二维数组

标签 java

原始数据类型的二维数组可以包含不同类型的元素吗?我读过的文章表明它既可以也不能。

最佳答案

原始类型的二维数组,如 int 在技术上不仅仅是原始类型。外部数组包含一个 int[] 数组,它们实际上是 Object - 不是原始类型(int[] 是一个Object 的子类型)。

这意味着 int[][] 数组可以包含 null,而内部 int[] 数组只能包含原始 整数。但是,int[][] 数组不能包含 int[] 以外的任何类型的元素。

示范

此代码无一异常(exception)地编译和执行:

int[][] a = {{1, 2, 3}, {4, 5, 6}, null};
System.out.println(Arrays.deepToString(a));
Object b = a;
System.out.println(Arrays.deepToString((int[][]) b));
int[][] c = a;
System.out.println(Arrays.deepToString(c));
int[] d = a[1];
System.out.println(Arrays.toString(d));
Object e = d;
System.out.println(Arrays.toString((int[]) e));
int[] f = a[2];
System.out.println(Arrays.toString(f));

并将输出:

[[1, 2, 3], [4, 5, 6], null]
[[1, 2, 3], [4, 5, 6], null]
[[1, 2, 3], [4, 5, 6], null]
[4, 5, 6]
[4, 5, 6]
null

关于Java原始数据类型的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35162605/

相关文章:

java - HTTP 状态 404 - 请求的资源不可用

java - 插入和读取 blob memsql

java - 如何使用 JNA 从结构中获取 Structure.ByReference?

java - 在 Java 中缓冲输出流是否比输入流更有效?

Java JDBC - 如何使用 tnsnames.ora 连接到 Oracle

java - 可选类型的单元测试用例

java - 如何使用 Elasticsearch 打开/关闭节点的索引

java - 如何使用方法解决: Locking account after three times?

java - JFreeChart addBin 具有竞争条件?

Opencv(3.0.0)模板匹配的Java实现