Java 在排序的多维数组中提取列

Java 在排序的多维数组中提取列,java,arrays,Java,Arrays,如何在不使用循环的情况下获取多维数组的整个第一列。我试图将第一列作为数组传递给另一个函数。 对于行,我只使用数组[I],然后传递I行,但是对于列,我必须使用临时数组并放置所需列的元素。 有没有比O(n)复杂度更简单的方法。 我尝试使用数组[][0]或任何类似的方法,但似乎没有任何效果。 我在java工作。 谢谢简短回答:这是不可能在少于O(n)的时间内完成的 解释:这是因为Java中数组的表示方式的本质。在Java中,数组是一个对象,因此可以通过引用在O(1)中传递它。矩阵是数组的数组,这意味着

如何在不使用循环的情况下获取多维数组的整个第一列。我试图将第一列作为数组传递给另一个函数。 对于行,我只使用数组[I],然后传递I行,但是对于列,我必须使用临时数组并放置所需列的元素。 有没有比O(n)复杂度更简单的方法。 我尝试使用数组[][0]或任何类似的方法,但似乎没有任何效果。 我在java工作。
谢谢

简短回答:这是不可能在少于O(n)的时间内完成的

解释:这是因为Java中数组的表示方式的本质。在Java中,数组是一个对象,因此可以通过引用在O(1)中传递它。矩阵是数组的数组,这意味着每列的每一项在每个数组中都是单独的项。这意味着您必须获取每个数组对象中的每个单独项,这使得它至少为O(n)


编辑:正如Kamil在评论中提到的,您可以单独存储列,然后可以在O(1)中传递这些列。存储在时间和内存上都需要O(n)。

多维数组是数组的数组,因此您有一个数组,其中的元素是对其他数组的引用。这就是为什么可以传递整行,因为您有对该数组的引用。另一方面,列是对不同数组的不同引用,您需要遍历行并获取所需的元素。如果多次执行此操作,则可以存储两个数组,一个以行作为列,另一个以另一种方式存储。然后您将有对行和列的引用