java - C#数组[,]转Java,具体数组的概念

标签 java c#

我正在将 C# 代码重写为 Java。我遇到了一种 Java 不支持的数组int[,] 距离;

所以这是我的问题,这是什么? [,] 它与 [ ][ ] 是一回事吗?

我想如果我用 java int [ ] [ ] distance; 它会以相同的方式工作,但不确定。

最佳答案

[,] Is it the same thing as [][] ?

没有。我将使用 int 作为元素类型以使事情变得更简单。 int[,] 是一个矩形数组。它是一个单一的对象,由两个维度索引。数组的每个元素请注意,您也可以有更多维度,例如int[,,] x = new int[10, 20, 30]

没有访问矩形数组的“一行”或“一列”的概念——所以

int[,] rectangular = new int[5, 3];
int[] row = rectangular[2]; // Invalid

将其与 int[][] 进行比较 - 这是一个数组的数组,也称为 锯齿状数组。数组的每个元素都是一个 int[]... 要么是空引用,要么是对 int[] 对象的引用。每个元素都可以引用不同长度的数组,例如

int[][] jagged = new int[][]
{
    new int[0],
    new int[1],
    new int[2]
};

这里,jagged[1][0] 是有效的,jagged[2][1]jagged[2][2]... 但是 jagged[0][0] 将无效,因为 jagged[0] 没有元素。当然,您可以访问锯齿状数组中的各个“行”:

int[] row = jagged[1];

请注意,多个元素也可以是同一个引用。例如:

int[][] jagged = new int[2][];
jagged[0] = new int[1];
jagged[1] = jagged[0];
jagged[0][0] = 10;
System.out.printn(jagged[1][0]); // Also 10! (References to the same array.)

然后当然可以混合搭配,例如int[][,] 其中顶级交错数组的每个元素都是一个矩形数组。我强烈建议不要这样做。

关于java - C#数组[,]转Java,具体数组的概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33668223/

相关文章:

java - 在java中显示小数点

java - ExoPlayer - java.lang.IllegalStateException : sending message to a Handler on a dead thread

c# - Visual C# 进程参数不起作用

c# - 从类访问登录用户 ID - MVC 5、AutoMapper 和 Identity 2.0

c# - 如何防止DataGridView水平滚动时出现闪烁?

c# - 以编程方式更新 Wifi 网络

java - 如何停止使用java压缩创建thumbs.db文件

java - 将文件列表与对象列表进行比较以删除文件

c# - Entity Framework : Create and update related objects in WPF

java - 将 Google API 添加到现有的 Eclipse 项目