我有两个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是其中一个键?
答案 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));
}