【发布时间】:2016-08-31 21:59:33
【问题描述】:
我是 hashmap 的新手,即使我试图阅读它,我也无法真正解决我的问题。
这是我遇到此问题的代码部分。
public HeatmapData(HashMap<Node, ArrayList<ODData>> ODs)
{
/* get all of the origins */
Node [] row = ODs.keySet().toArray(new Node[0]);
Node [] column = new Node[row.length];
System.arraycopy(row, 0, column, 0, row.length);
ODData [] routes = new ODData[ROUTES_SIZE];
for (int i=0; i<ROUTES_SIZE; i++)
{
ODData temp = new ODData();
// Node n = row[i];
routes[i] = temp;
//routes = (ODData[]) ODs.get(n).toArray(new ODData[0]);
}
如您所见,我真的找不到将数据从原始哈希映射复制到我的对象数组的方法。
我基本上需要找到数组“row”中的第一个节点,从 hashmpap 中找到它的值,填充我的数组“routes[]”,然后对数组“row”中的第二个节点执行相同的操作。似乎每次我尝试都会错过匹配错误或空值。
程序读取两个文件,如下所示:
第一:
100001 200002 6
100001 200003 9
...............
第二:
100001 -97.5489 30.5846
100002 -97.6958 30.5986
...............
我的节点类由
int ID;
double longititude;
double lattitude;
我的 ODData 类包括
Node origin;
Node destination;
double value;
每个 10000 号码都有很多 20000 号码与之相关。
使用发送到函数的哈希图,我需要用这些 ODData 对象填充我的 ODData routes[] 数组,使其看起来像原始文件(第一个文件)。
知道怎么做吗? 如有任何帮助,我将不胜感激!
尼基塔
【问题讨论】:
-
你为什么有这个?新节点[0]
-
这部分实际上工作正常。它用正确的节点填充数组“row”和“colom”。我的问题在循环中。
-
到底是什么问题?
-
它没有指向任何地方?循环有什么错误或问题?
-
请发布完整的代码,您实际上想要做什么?
标签: java arrays for-loop hashmap populate