Java 为嵌套映射提供值
我有一个带有两个字符串键的嵌套贴图(map in/of map)。基本上,我做的是,我有一组节点,我找到它们之间的最短路径。但是,我需要存储它们并在以后使用它们,因此我执行了以下操作:Java 为嵌套映射提供值,java,Java,我有一个带有两个字符串键的嵌套贴图(map in/of map)。基本上,我做的是,我有一组节点,我找到它们之间的最短路径。但是,我需要存储它们并在以后使用它们,因此我执行了以下操作: private Map<String, Map<String,Object>> TravelTime = new HashMap<String, Map<String,Object>>(); 我想我需要的是: TraveTime.put(ParkingDests
private Map<String, Map<String,Object>> TravelTime =
new HashMap<String, Map<String,Object>>();
我想我需要的是:
TraveTime.put(ParkingDests(i),ParkingDest(j), ShortestRoute)
然而,我找不到一个方法来做这件事。
我知道番石榴表(我知道它正是我所需要的),但我更愿意在这方面找到解决方案 您希望在添加新路由之前检查是否添加了辅助哈希映射。这里,我假设ParkingDests是一个字符串数组。我还假设,您的
标记意味着您正在将这个循环包装在生成ShortestRoute对象的一些代码中。绝对不需要将其存储为通用对象,但我相信您只是为了我们的利益而很好地简化了您的问题:)
for(int i=0;i
秒=旅行时间.get(驻车点[i])
if(秒==null){
第二个=新的HashMap()
旅行时间.put(ParkingDests[i],秒);
}
第二,put(ParkingDests[j],Shortest);
}
}
另外请注意,我建议不要像您编辑的问题那样将键集用作驻车点。你不能保证从那里得到订单。您应该将ParkingDests保留为一个数组。在添加新路由之前,您需要检查是否添加了辅助哈希映射。这里,我假设ParkingDests是一个字符串数组。我还假设,您的
标记意味着您正在将这个循环包装在生成ShortestRoute对象的一些代码中。绝对不需要将其存储为通用对象,但我相信您只是为了我们的利益而很好地简化了您的问题:)
for(int i=0;i
秒=旅行时间.get(驻车点[i])
if(秒==null){
第二个=新的HashMap()
旅行时间.put(ParkingDests[i],秒);
}
第二,put(ParkingDests[j],Shortest);
}
}
另外请注意,我建议不要像您编辑的问题那样将键集用作驻车点。你不能保证从那里得到订单。您应该将ParkingDests保持为一个数组。我建议使用图形数据结构。你可以用。它有一个计算最短路径的实现。节点将是你的停车点,边缘的重量将是你的行程时间。
最佳路径是一个子图。玩得开心。我建议使用图形数据结构。你可以用。它有一个计算最短路径的实现。节点将是你的停车点,边缘的重量将是你的行程时间。
最佳路径是一个子图。玩得开心。你确定你想要的不是:
HashMap
?你能给我们提供ParkingDests
的类型吗?你可能想研究一个关于Java稀疏矩阵的问题。你确定你不想要:HashMap
?你能给我们提供ParkingDests
的类型吗?你可能想研究一个关于Java稀疏矩阵我想就是这个了!我把ParkingDest换成了arrays tnx作为建议!!事实上,我扩展了我的代码,事实上它就是这么做的;)我想就是这样!我把ParkingDest换成了arrays tnx作为建议!!事实上,我扩展了我的代码,事实上它就是这么做的;)我使用图形结构来计算最短路径,但我需要将用于某些特定对的始发地/目的地的成本/路线存储为包含从节点到所有其他节点的旅行信息的对象;)。非常感谢您的建议。我使用图形结构来计算最短路径,但我需要将用于某些特定对的始发地/目的地的成本/路线存储为包含从节点到所有其他节点的旅行信息的对象;)。非常感谢你的建议。
TraveTime.put(ParkingDests(i),ParkingDest(j), ShortestRoute)
for (int i = 0;i< ParkingDests; i++){
for (int j = 0;j< ParkingDests; j++){
<code>
second = TravelTime.get(ParkingDests[i])
if(second == null) {
second = new HashMap<String, Object>()
TravelTime.put(ParkingDests[i], second);
}
second.put(ParkingDests[j],Shortest);
</code>
}
}