MapsList と比較する必要がある String exp があります。
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);
私は経験を取り、配列に分割します。
String delims = "[\\&&\\||\\=]+";
String[] token = exp.split(delims);
次に、配列を 2 つの小さなサブ配列に分割します。1 つはキー用で、もう 1 つは値用です。その後、私は比較します...
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");
}
}
したがって、私の問題は、マップごとにこれを実行できることですが、イテレータを使用して実装する方法がわかりません。
誰かが私を正しい方向に押し進めることができますか?
ありがとう。