Java 从lisked列表在hashmap中添加值

Java 从lisked列表在hashmap中添加值,java,arraylist,hashmap,Java,Arraylist,Hashmap,我有两个数组列表,比如list 1:[BRONZE1 | BRONZE2 | BRONZE3]和list 2:[ABC,XYZ | ACO | PMP,PCSH] 我想将这些值放入哈希映射中,如:,。 有人能提出建议吗。从您所写的内容来看,似乎您已经拥有了地图价值的列表。 您可以使用Map和StringUtils.split或String.split来获取数据。 大概是这样的: Map<String, List<String>> myMap = new HashMap&l

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

我想将这些值放入哈希映射中,如:
,。


有人能提出建议吗。

从您所写的内容来看,似乎您已经拥有了地图价值的列表。 您可以使用
Map
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(","));
}
Map myMap=newhashmap();
List keys=keysStr.split(“|”);
列表VAL=值STR.split(“|”);
对于(inti=0;i试试这个

 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);

下面的代码显示了从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);        
        }    
     }
 }
公共类HashMapAuto扩展HashMap
{    
@抑制警告(“未选中”)
公共HashMapAuto(列表键、列表值)引发异常
{        
超级();
if(keys.size()!=values.size())
抛出新异常(“键”列表和“值”列表大小不同”);
对于(int i=0;i
您的hashmap看起来像一个列表。键和值是什么?使用相同的计数器在两个列表上迭代,从列表中获取值,使用第一个作为映射的键,第二个作为mapkey的值将是列表1中的第一个值,值将是列表2中的第一个值,直到| delimiterNadir--我尝试过这样做。您能为这一操作发布一个代码片段吗s?表示(int i=0;i