在lisked列表中添加hashmap中的值

时间:2014-09-22 10:54:37

标签: java arraylist hashmap

我有2个数组列表,例如list 1 : [BRONZE1|BRONZE2|BRONZE3]list2 :[ABC,XYZ|ACO|PMP,PCSH]

我想将这些值放在Hashmap中,如:<BRONZE1,ABC,XYZ>,<BRONZE2,ACO>,<BRONZE3,PMP,PCSH>.

有人可以建议。

3 个答案:

答案 0 :(得分:0)

根据你所写的内容,你的地图价值似乎有了List。 您可以使用Map<String, List<String>>并使用StringUtils.splitString.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);        
        }    
     }
 }