访问hashmap的值

可能重复:
如何迭代Map中的每个条目?

我有一个MAP, Map<String, Records> map = new HashMap<String, Records> ();

public class Records 
{
    String countryName;
    long numberOfDays;

    public String getCountryName() {
        return countryName;
    }
    public void setCountryName(String countryName) {
        this.countryName = countryName;
    }
    public long getNumberOfDays() {
        return numberOfDays;
    }
    public void setNumberOfDays(long numberOfDays) {
        this.numberOfDays = numberOfDays;
    }

    public Records(long days,String cName)
    {
        numberOfDays=days;
        countryName=cName;
    }

    public Records()
    {
        this.countryName=countryName;
        this.numberOfDays=numberOfDays;
    }

我已经实现了map的方法,现在请告诉我如何访问hashmap中存在的所有值。 我需要在android中的UI上显示它们?


如果你想从你的HashMap并行访问keysvalues ,你可以使用Map#entrySet方法: -

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

//Populate HashMap

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

另外,您可以在Record类中重写toString方法,以在for-each循环中打印它们时获取instances字符串表示形式。

更新 : -

如果要排序的Map的基础上, key按字母顺序排列,您可以转换MapTreeMap 。 它会自动将条目按键排序: -

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

    for(Map.Entry<String, Integer> entry: treeMap.entrySet()) {
        System.out.println(entry.getKey() + " : " + entry.getValue());

    }

有关更详细的解释,请参阅此文章: - 如何通过Java中的键对Map值进行排序


你可以通过使用for循环来完成

Set keys = map.keySet();   // It will return you all the keys in Map in the form of the Set


for (Iterator i = keys.iterator(); i.hasNext();) 
{

      String key = (String) i.next();

      Records value = (Records) map.get(key); // Here is an Individual Record in your HashMap
}

map.values()为您提供了一个包含HashMap中所有值的Collection

链接地址: http://www.djcxy.com/p/23967.html

上一篇: Access values of hashmap

下一篇: Printing a java map Map<String, Object>