我有2个数组列表,例如list 1 : [BRONZE1|BRONZE2|BRONZE3]
和list2 :[ABC,XYZ|ACO|PMP,PCSH]
我想将这些值放在Hashmap中,如:<BRONZE1,ABC,XYZ>,<BRONZE2,ACO>,<BRONZE3,PMP,PCSH>.
有人可以建议。
答案 0 :(得分:0)
根据你所写的内容,你的地图价值似乎有了List。
您可以使用Map<String, List<String>>
并使用StringUtils.split
或String.split
来获取数据。
像这样:
Map<String, List<String>> myMap = new HashMap<>();
List<String> keys = keysStr.split("|");
List<String> vals = valuesStr.split("|");
for(int i=0;i<keys.size();++i){
myMap.put(key, vals.get(i).split(","));
}
添加一些检查,它应该有效。
答案 1 :(得分:0)
试试这个
List list1 = new ArrayList();
list1.add("abc");
list1.add("def");
list1.add("nop");
List list2 = new ArrayList();
list2.add("ghi");
list2.add("jkl");
Map map = new HashMap();
Iterator it1 = list1.iterator();
Iterator it2 = list2.iterator();
while(it1.hasNext()){
if(it2.hasNext()){
map.put(it1.next(), it2.next());
}else{
map.put(it1.next(), "");
}
}
System.out.println(map);
答案 2 :(得分:0)
以下代码显示了一个派生自HashMap的类,其构造函数可以回答您的查询
public class HashMapAuto <K, V> extends HashMap
{
@SuppressWarnings("unchecked")
public HashMapAuto(List<K> keys, List<V> values) throws Exception
{
super();
if (keys.size() != values.size())
throw new Exception("'keys' list and 'values' list differs in size");
for (int i = 0; i < keys.size(); i++)
{
Object newKey = keys.get(i);
Object newValue = values.get(i);
this.put(newKey, newValue);
}
}
}