Java 什么';阵列在另一个阵列中的缺点是什么?

Java 什么';阵列在另一个阵列中的缺点是什么?,java,arrays,multidimensional-array,Java,Arrays,Multidimensional Array,假设我有这行代码: Object [] b = {3,new int[]{12,34,34},new int[][]{{1,2},{2,3}}}; 我的问题是: 为什么我看不到程序员使用这种东西有什么问题,java有没有其他更好的方法来实现它 如何获取所有值,包括(数组和矩阵) 内存如何为阵列中的矩阵提供位置 如果你能给我举个真实的例子,我将不胜感激 该代码段(原样)是非法的,因为整数数组只能包含整数,不能包含整数数组 如果将b声明为对象数组,则代码是合法的。在程序中不太可能看到这样

假设我有这行代码:

 Object [] b = {3,new int[]{12,34,34},new int[][]{{1,2},{2,3}}};
我的问题是:

  • 为什么我看不到程序员使用这种东西有什么问题,java有没有其他更好的方法来实现它

  • 如何获取所有值,包括(数组和矩阵)

  • 内存如何为阵列中的矩阵提供位置

    如果你能给我举个真实的例子,我将不胜感激

该代码段(原样)是非法的,因为整数数组只能包含整数,不能包含整数数组

如果将
b
声明为对象数组,则代码是合法的。在程序中不太可能看到这样的代码,因为在一个容器中混合不同类型的对象很少有用(通常需要一个特定类型对象的集合),而且可能有危险(不能使用编译器来保证不会意外地将非预期的内容放入数组)

如何获取所有值?

可以使用使用反射的递归方法或
instanceof
运算符检查当前元素是否为数组

内存如何为阵列中的矩阵提供位置?


Java没有矩阵,只有包含指向其他数组的指针的数组。

在一个数组中混合不同的类型是一件可怕的事情,会导致一个非常脆弱的程序。不要这样做,故事的结尾。我不确定它是否会编译…我想如果它是
对象[]
,它会编译,但不管怎样,这是个坏消息。如果必须混合数据类型(坏主意),Java有基类。在使用数组中的任何项之前,必须检查其类型。这破坏了数组类型的全部用途。当然,您可以这样做,但请宽恕那些不得不维护您的代码的人。