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