java Map集合中存放不同的Key 且key 对应多个不同的值??

2024-11-08 05:43:44
推荐回答(5个)
回答1:

List list = new ArrayList();

list.add("node1-a1");
list.add("node2-a1");
list.add("node3-a1");
list.add("node1-a2");
list.add("node2-a2");
list.add("node3-a2");
list.add("node1-a3");
list.add("node2-a3");
list.add("node3-a3");

Map> map = new HashMap>();

for(String string : list){
String node = string.split("-")[0];
String value = string.split("-")[1];

if(map.containsKey(node)){
List list2 = map.get(node);
list2.add(value);
map.put(node, list2);
}else{
List list2 = new ArrayList();
list2.add(value);
map.put(node, list2);
}

}

回答2:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args){
Map> map = new HashMap>();//存放类型的map
List l1 = new ArrayList();//假设这是你的list
List l2 = new ArrayList();//假设这是你的note节点集合
for(int i =0;i map.put(l2.get(i), l1);//存放键值
}
Iterator iter = map.entrySet().iterator();
while(iter.hasNext()){
Map.Entry entry = (Map.Entry)iter.next();
System.out.println(entry.getKey()+"======》"+entry.getValue());
}
}
}
大致就是这样子的。我不清楚你前面节点和值是怎么存放的。我就假设了两个值。你按照这种思路可以自己试试~~相信你可以做出来的。加油

回答3:

很简单呀,就是循环list,把list中的每个元素取出来,获得节点名和节点值,用map.get(节点名)。判断在map中有没有这个节点,如果返回的list为空就表示没有这个结点,new List对象,把节点值放到list中,然后再map.put(节点名,list);如果返回的list不是空表示map中已经有这个节点了,将节点值放到list中,然后再map.put(节点名,list);

回答4:

思路很简单,就是获取node名,取出对应的value,根据循环,插入到不同的map中。你可以简单地把node的名字存到数组里面,然后循环得出,条件判断不同的node名,插入到不同的map中,这样的思想比较简单。

回答5:

2361004892加这个,方便交流