java中的多维数组有用吗?

java中的多维数组有用吗?,java,Java,我试图找出在哪里可以使用多维数组。例如,在哪里需要使用数组,例如 int x[][] 如果您需要,它们非常有用。例如,您可以处理三维对象(x、y、z)坐标或进行数学研究。通常,作为程序员,您不会每天使用它们。哦,如果您不知道,Java允许的最大维度数是255。多维数组最常用的用法是在维度中工作。例如,如果正在加载图像,则可以将该图像的每个位置的一个字节存储在byte[][]数组中,以便使用x-y坐标访问每个像素。或者对于这方面的任何网格,都可以使用它,例如电子表格或Tic-Tac趾板 在游戏开发

我试图找出在哪里可以使用多维数组。例如,在哪里需要使用数组,例如


int x[][]

如果您需要,它们非常有用。例如,您可以处理三维对象(x、y、z)坐标或进行数学研究。通常,作为程序员,您不会每天使用它们。哦,如果您不知道,Java允许的最大维度数是255。

多维数组最常用的用法是在维度中工作。例如,如果正在加载图像,则可以将该图像的每个位置的一个字节存储在
byte[][]
数组中,以便使用x-y坐标访问每个像素。或者对于这方面的任何网格,都可以使用它,例如电子表格或Tic-Tac趾板

在游戏开发中,可以使用三维数组来表示三维空间中的点。这可用于使用矩阵表示相机的模型或参数

对于数据存储,您可以使用更大尺寸的多维数组来表示数据结构链或矩阵数学矩阵,它们有自己的用途。例如,如果您有500人,以数字表示,他们都参加了500门课程、500篇论文和500次测试,您可以使用
people[200][200][200][200]
获得参加第200门课程的第200人的测试结果,他们参加了第200门课程。。。然而,在OOP中,这可以通过对象来实现


对于所有这些用途,都有OOP或其他技巧来替代它们。这一切都取决于你认为最容易使用的数组。

你可能永远不会在实际代码中使用多维数组,除非你在做数学或(可能)处理图像。好吧,亲爱的,只是因为弄不清楚它会是什么样子,所以我强调以后需要使用它们。谢谢你可能会遇到一些更普遍的2+维数据结构,比如列表列表(列表…)。在实际代码中看到任何类型的数组都是非常罕见的。如果你想概念化更高维度通常是什么样子,这是一个很好的视频:。你总是可以说某些极端的东西是无用的(例如
列表
),但2/3维数组肯定经常使用(2表示矩阵)但是,在Java中,真正的图像处理代码不太可能使用多维数组,因为它们的缓存性能很差。有趣的是,当我调用#getPixelReader#getColor?@RadioDef时,你知道Java使用的是什么样的结构吗?我看到的图像处理代码使用常规的1D数组,并使用
a*b+c
来像二维数组一样访问它。(普通数组在内存中是连续的,而多维数组则不是。)也许这有点令人毛骨悚然,但问题有点模糊,具体是关于数组还是更一般的数据结构。500x500x500x500矩阵将有500^4个元素,即6250000000。如果每个元素都用int表示,则大约有250GB的内存。只需说:-)