我有这个C#代码:
private static double[,][] _temp = null;
我认为我以前从未使用过包含逗号的数组声明。我假设它是锯齿状阵列的一些变体。任何人都可以确认C#代码的作用吗?另外,有人知道Java中的等效代码是什么吗?
答案 0 :(得分:1)
那将是一组固定大小的二维数组。 固定大小(而不是锯齿状)二维数组数组。
答案 1 :(得分:1)
这是一个二维数组吗?
private static double[][] temp = null;
编辑:
三维:
private static double[][][] temp = null;
答案 2 :(得分:1)
[,]
是一个矩形数组(不是锯齿状)。 (并使用一个逗号,2D。)重点是获得通常的Java阵列数组(可能是锯齿状)的性能优势。您可以使用一些算术定位元素并解除引用一个指针,而不是取消引用两个指针和更少的算术。不确定它对小型阵列有什么帮助 - 可能会受到伤害 - 但是对于大型阵列,[,]
可能会提供更好的缓存性能。在具有阵列处理器的机器上也会有很大帮助。 (有些人仍然使用FORTRAN,因为它在具有阵列处理器的机器上很好地处理数组。)C#倾向于添加特殊的东西来获得这样的小奖或大奖。 Java试图保持简单,即使它花费了一些成本。
然后另一个[]
给你一个可能参差不齐的非锯齿数组,就像在Java中一样。
答案 3 :(得分:0)
根据这个site,[]里面的逗号就像在C#中声明一个双维数组。所以在你的情况下,它是一个双维数组的数组。