我有一个字符串 exp,我必须与 mapsList 进行比较。
String exp = "nodeId=1&&name=Router||level=1";
List mapList = new ArrayList();
Map map = new HashMap();
map.put("nodeId","1");
map.put("name","Router");
map.put("level", "1");
Map map1 = new HashMap();
map1.put("nodeId","2");
map1.put("name","Router");
map1.put("level","2");
Map map2 = new HashMap();
map2.put("nodeId","3");
map2.put("name","Router");
map2.put("level","3");
mapList.add(map);
mapList.add(map1);
mapList.add(map2);
我把 exp 分成一个数组。
String delims = "[\\&&\\||\\=]+";
String[] token = exp.split(delims);
然后我将数组分成两个较小的子数组。一个用于键,另一个用于值。之后我比较...
if(map.keySet().contains(a1[0]) && map.keySet().contains(a1[1]) || map.keySet().contains(a1[2])){
if(map.values().contains(a2[0]) && map.values().contains(a2[1]) || map.values().contains(a2[2])){
System.out.println("Match\tMapKeys: "+map.keySet()+" Values: "+map.values());
}else{
System.out.println("No Match\t");
}
}
所以我的问题是我可以为每个地图执行此操作,但无法弄清楚如何使用迭代器来实现它。
some1 能把我推向正确的方向吗?
谢谢。