Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 循环遍历HashMap_Java_Android_Hashmap_Kotlin - Fatal编程技术网

Java 循环遍历HashMap

Java 循环遍历HashMap,java,android,hashmap,kotlin,Java,Android,Hashmap,Kotlin,我试图循环遍历一个HashMap,其中字符串作为键,类的对象作为值。我希望rek1有钥匙“A”和rek2钥匙“B” 这是我的密码: private Map<String, List<X2Y2>> areaMap = new HashMap<String, List<X2Y2>>(); ArrayList<X2Y2> arrList = new ArrayList<X2Y2>(); X2Y2 rek1 = new X2Y2(1

我试图循环遍历一个HashMap,其中字符串作为键,类的对象作为值。我希望rek1有钥匙“A”和rek2钥匙“B”

这是我的密码:

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());
}
private-Map-aremap=new-HashMap();
ArrayList arrList=新的ArrayList();
X2Y2 rek1=新的X2Y2(1.0,1.0,2.0,2.0);
X2Y2 rek2=新的X2Y2(3.0,3.0,4.0,4.0);
arrList.add(rek1);
添加(rek2);
区域地图。放置(“A”,列表);
for(对象键:areaMap.keySet()){
字符串lKey=(字符串)键;
列表=areaMap.get(键);
Log.i(“Worku?”,list.toString());
}
classx2y2(变量x1:Double,变量y1:Double,变量x2:Double,变量y2:Double){}

问题是,我只能获取键值,而不能使用X2Y2获取列表。有没有人能帮我获取X2Y2值的提示?

更改
areaMap.get(键)
区域地图。获取(lKey)

我确实认为您应该使用条目集进行迭代,这样您就可以更容易地获得值

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

我会使用Map.Entry对其进行迭代您不能让rek1具有键“a”和rek2键“B”,因为它们是列表的元素,即HashMapSystem.out:[io.agilevision.approxity.indoor]的值。X2Y2@802c399,io.agilevision.approxity.indior。X2Y2@21c165e]是我得到的输出。。在那之后我需要循环浏览列表吗?是的,你可以做一个
kv.getValue().forEach(System.out::println)如果要打印值或对其执行任何操作