从ArrayList创建HashMap

时间:2014-02-25 04:06:26

标签: java android arraylist hashmap

我有两个ArrayList字符串,想要将它们合并到一个hashmap中。我正在做这样的事情。

HashMap<ArrayList<String>,ArrayList<String>> map = new HashMap<ArrayList<String>, ArrayList<String>>();

ArrayList<String>k =  receivedIntent.getStringArrayListExtra("keys");
ArrayList<String>v = receivedIntent.getStringArrayListExtra("values");

map.put(k, v);

这是正确的方法吗?理想情况下,我想使用k数组中的值作为散列映射中的键来访问v数组中的值,如value = map.get("Name"),其中Name是其中一个键?

2 个答案:

答案 0 :(得分:2)

首先,我们假设k和v的长度相等,并且键将是唯一的。您可能希望使用try / catch块包围映射。

HashMap<String, String> map = new HashMap<String, String>();

ArrayList<String>k =  receivedIntent.getStringArrayListExtra("keys");
ArrayList<String>v = receivedIntent.getStringArrayListExtra("values");

for(int i = 0; i < k.size(); i++) map.put(k.get(i), v.get(i));

答案 1 :(得分:1)

假设两个列表的长度相同,并且您希望将元素作为键值对:

ArrayList<String> k =  receivedIntent.getStringArrayListExtra("keys");
ArrayList<String> v = receivedIntent.getStringArrayListExtra("values");
HashMap<String,String> map = new HashMap<String, String>();
for (int i = 0; i < k.size() && i < v.size(); ++i) {
  // putting each element of k/v into the map
  map.put(k.get(i), v.get(i));
}