使用多维数组索引获取另一个数组的值

时间:2013-08-12 15:45:46

标签: java matrix multidimensional-array arraylist indexing

好的,基本上我的程序中有2个多维数组:

生成的距离:     空

999.0   22.0    38.0    9.0     12.0

10.0    999.0   9.0     22.0    24.0

10.0    41.0    999.0   25.0    49.0

4.0     2.0     18.0    999.0   1.0

4.0     38.0    8.0     20.0    999.0

道路矩阵:

null     town     town       national   regional
town     null     national   motorway   motorway
town     motorway null       regional   town
motorway national national   null       town
town     town     national   regional   null

第一个数组生成距离,而第二个数组生成这些距离的道路类型。

我正在使用算法来计算最佳路线,我在第一个矩阵上工作。我使用了一个数组列表。

[0,4,3,1,2,0]

基本上我想得到第二个数组中道路的索引。

结果应如下[区域,区域,国家,国家,城镇]

我只是想知道使用第一个矩阵生成的结果最有效的方法是什么?

由于

1 个答案:

答案 0 :(得分:0)

由于您正在使用第一个数组中的数据填充第二个数据,因此最好是将它们彼此靠近以防止尽可能多的缓存未命中。

例如:

public class Road {
  public float distance;
  public RoadType roadType;
};

// if you know the size, try using an actual array of Road
List<Road> roads;

除非您希望更高效地访问该数据,否则您可能需要更改数据的内存布局。 (在上面的例子中,它应该在创建时有效)