9

可能重复:
如何遍历地图中的每个条目?

我有一个地图,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 上显示它们吗?

4

4 回答 4

5

您可以通过使用 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
}
于 2012-10-22T09:25:58.113 回答
3

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

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());
}

此外,您可以覆盖类toString中的方法,以便在循环打印它们时Record获取您的字符串表示。instancesfor-each

更新: -

如果您想按字母顺序对您进行排序,您可以将您Map的转换为. 它会自动放置按键排序的条目:-keyMapTreeMap

    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 值进行排序

于 2012-10-22T08:50:00.137 回答
0

map.values()给你一个Collection包含所有值的HashMap.

于 2012-10-22T08:49:43.350 回答
0

如果您已经HashMap准备好使用数据,那么您只需要遍历HashMap键。只需实现一个迭代并一个一个地获取数据。

检查这个:遍历 HashMap

于 2012-10-22T08:49:46.900 回答