我有一个嵌套的LinkedHashMap
,如下所示:
LinkedHashMap<String,LinkedHashMap<String,LinkedList<Long>>> map = new...
问题是每个外部地图只添加了1个内部地图,而我期待2.我认为问题是我如何构建我的地图,并用第二个覆盖第一个内部地图。 (为了简要概括我的程序,我将每只手映射到每个手指上。映射结构需要Finger={Right_Hand=[],Left_Hand=[]
,反之亦然。)
构造函数:
Set<String> handNames = new HashSet<String>(Arrays.asList("Left","Right");
Set<String> fingerNames = new HashSet<String>(Arrays.asList("Pinky","Ring","Middle","Index","Thumb");
LinkedHashMap<String, LinkedHashMap<String,LinkedList<Long>>> fingerHandMap = new LinkedHashMap<String, LinkedHashMap<String,LinkedList<Long>>>();
createNestedMap() {
for (String finger : fingerNames)
for (String hand : handNames) {
LinkedHashMap<String, LinkedList<Long>> handMap = new LinkedHashMap<String, LinkedList<Long>>();
handMap.put(hand, new LinkedList<Long>());
fingerHandMap.put(finger, handMap);
}
}
当我打印出地图时,它看起来像这样:
{Ring={Left=[]}, Pinky={Left=[]}, Thumb={Left=[]}, Middle={Left=[]}, Index={Left=[]}}
我如何创建独特的LinkedLists
,以使地图看起来像:
{Ring={Right=[], Left=[]}, Pinky={Right=[], Left=[]}, Thumb={Right=[], Left=[]}, Middle={Right=[], Left=[]}, Index={Right=[], Left=[]}}
谢谢!
答案 0 :(得分:1)
我打算写一下你目前在伪代码中所做的事情,所以希望你能看到你做错了什么:
create a new finger hand map
for each finger:
for each hand:
create a new hand map
put an entry mapping the hand to an empty list in the hand map
put an entry mapping the finger to the hand map in the finger hand map
请记住,当您在地图中put
键值条目时,它会使用相同的键替换任何现有条目。
如果您需要进一步澄清,请与我们联系。