关于Java:通过HashMap循环

Loop through HashMap

本问题已经有最佳答案,请猛点这里访问。

我正试图用一个字符串作为键,用我的类的一个对象作为值来循环散列映射。我要REK1有"A"键和"B"键。

以下是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
private Map<String, List<X2Y2>> areaMap = new HashMap<String, List<X2Y2>>();
ArrayList<X2Y2> arrList = new ArrayList<X2Y2>();
X2Y2 rek1 = new X2Y2(1.0,1.0, 2.0, 2.0);
X2Y2 rek2 = new X2Y2(3.0,3.0, 4.0, 4.0);
arrList.add(rek1);
arrList.add(rek2);
areaMap.put("A", arrList);

for (Object key : areaMap.keySet()) {
   String lKey = (String) key;
   List<X2Y2> list = areaMap.get(key);
   Log.i("Worku?", list.toString());
}

class X2Y2(var x1: Double, var y1: Double, var x2: Double, var y2: Double) {}

问题是我只能得到键值,而不能得到X2Y2的列表。有没有人能帮我得到X2Y2的值?


areaMap.get(key);改为areaMap.get(lKey);

我认为您应该使用一个条目集进行迭代,这样可以更容易地得到值。

1
2
3
for (Map.Entry<String, List<X2Y2>> kv : areaMap.entrySet()) {
    System.out.println(kv.getValue());
}