【问题标题】:how to get hashmap values depends on key如何获取 hashmap 值取决于键
【发布时间】:2013-10-21 12:55:56
【问题描述】:

我有这个带有字符串和数组的哈希图:

Map<String, ArrayList<String>> devNameType = new HashMap<String, ArrayList<String>>();
public void kimenetPV(String name){
        //létrehozom a nevet
                String devName = name;

                //létrehozom a kimeneteket tartalmazó arraylistet
                ArrayList<String> outputs = new ArrayList<String>();

                // 2. hozzáadaom az elemeket
                outputs.add("EM A");
                outputs.add("EM B");
                outputs.add("AOUT1");
                outputs.add("AOUT2");               

                devNameType.put(devName, outputs);

                Iterator iter = devNameType.entrySet().iterator();

                //kilistázom az elemeket
                while (iter.hasNext()) {
                    Map.Entry mEntry = (Map.Entry) iter.next();
                    System.out.println(mEntry.getKey() + " : " + mEntry.getValue());
                }
    }

如何打印所有值? 很抱歉我第一次使用哈希图的初学者问题。

【问题讨论】:

  • 使用输出.get("position")。 position 是数组列表的索引

标签: java android hashmap


【解决方案1】:

您可以这样打印键:值对:

Iterator<Entry<String, List<String>>> iter = devNameType.entrySet().iterator();
while (iter.hasNext()) {
    Entry<String, List<String>> next = iter.next();
    List<String> value = next.getValue();
    System.out.println("key = " + next.getKey());
    System.out.println("values : ");
    for (String str : value) {
        System.out.println(str);
    }
}

【讨论】:

  • 我应该如何定义迭代器?
  • 我应该如何定义迭代器?
  • 添加了迭代器定义
【解决方案2】:
for (List<String> value : devNameType.values()) {
    ... do something with this value
}

对于键/值:

for (String key: devNameType.keySet()) {
    List<String> values = devNameType.get(key);
    ... do something with the name and values
}

http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#values()http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#keySet()

【讨论】:

  • 有了这个我怎么知道哪个键有这个值?
  • 好的,但我需要以 htat 方式:if(key == 'something') 打印 'something' 的值
  • 你不能再检查一下'key'值吗?
【解决方案3】:

使用 hashMap.values() 你会得到一个包含所有值的集合: http://developer.android.com/reference/java/util/HashMap.html#values()

【讨论】:

    猜你喜欢
    • 2010-11-25
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-13
    • 2014-12-01
    • 2011-04-27
    相关资源
    最近更新 更多