java - 从 ArrayList Java 中的 HashMap 键中检索所有值

标签 java arraylist hashmap

美好的一天,这让我有点困惑(大脑卡住!),并且似乎遗漏了一些东西。有一个我用 HashMap 填充的 ArrayList。现在我放入我的 HashMap 和 arraylist。

 Map.put(DATE, value1);
 Map.put(VALUE, value2);

 arraylist.put(Map);

由于解析 JSON,arraylist 的大小显着增加。现在我的问题是如何从数组列表中的两个映射键中获取值?这个我试过了

  if(!list.isEmpty()){   // list is an ArrayList

            for(int k = 0; k < list.size(); k++){
                map = (HashMap)list.get(k);
            }

        }

        Log.d(TAG, "map size is" + map.size());

        String [] keys = new String[map.size()];
        String [] date_value = new String[map.size()];

        String [] value_values = new String[map.size()];

        int i = 0;
        Set entries = map.entrySet();
        Iterator iterator = entries.iterator();

        while(iterator.hasNext()){

            Map.Entry mapping = (Map.Entry)iterator.next();
            keys[i] = mapping.getKey().toString(); 
            date_value[i] = map.get(keys[i]);

            if(keys[i].equals(DATE)){
                date_value[i] = map.get(keys[i]);

            } else if(keys[i].equals(VALUE)){
                value_values[i] = map.get(keys[i]);
            }

                   i++;
                 }

但我似乎无法获得所有值。 Map 大小总是返回 2 的值,这只是元素。如何从 ArrayList 中的 Map 键中获取所有值?谢谢

最佳答案

既然已经有工作要做,为什么还要重新发明轮子。 Map.keySet() 方法为您提供 Map 中所有键的 Set。

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

for (String key: map.keySet()) {
    System.out.println("key : " + key);
    System.out.println("value : " + map.get(key));
}

另外,你的第一个 for 循环在我看来很奇怪:-

   for(int k = 0; k < list.size(); k++){
            map = (HashMap)list.get(k);
   }

您正在遍历您的列表,并将每个元素分配给相同的 reference - map,这将覆盖所有以前的值。您将拥有的只是列表中的最后一张 map 。

编辑:-

如果您想要 map 的键和值,您也可以使用 entrySet。那对你来说会更好:-

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

    for(Entry<String, Integer> entry: map.entrySet()) {
        System.out.println(entry.getKey());
        System.out.println(entry.getValue());
    }

附言:-
你的代码在我看来很困惑。我建议,把那段代码放在一边,再想想你的design。目前,就代码而言,很难理解它试图做什么。

关于java - 从 ArrayList Java 中的 HashMap 键中检索所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960265/

相关文章:

等效的 JavaScript HashMap

Java:将 "VK_UP"更改为 KeyEvent.VK_UP

Java 缓存和 HashMap

java - Java 中的 PDF 解析器 API

Java:一旦我清空 ArrayList 从中获取其内容的文本文件,我的 ArrayList 就会自行清空

java - 新的 ArrayList<int>() 在 Java 中失败

java - 需要比较 ArrayList 中的对象以返回最高值

java - Hibernate Entity getter 中的 LazyInitializationException

java - 从 .txt 文件向数组添加数字

java - 使用 jquery 中的 ajax 请求将 javascript 数组传递给 struts 操作类