java如何写两个map比较?
发布网友
发布时间:2022-05-16 17:14
我来回答
共3个回答
热心网友
时间:2023-11-04 22:30
Map map1 = new HashMap();
Map map2 = new HashMap();
map1.put("a", "aa");
map1.put("b", "bb");
map1.put("c", "cc");
map2.put("1", "11");
map2.put("b", "22");
map2.put("3", "33");
Iterator it = map1.keySet().iterator();
while(it.hasNext()){
Object key = it.next();
if(map2.containsKey(key)){
System.out.println(map1.get(key));
System.out.println(map2.get(key));
}
}
热心网友
时间:2023-11-04 22:30
将map的key转为一个set 使用keySet()方法
然后使用集合的retainAll()方法找出两个集合中相同的元素就OK了
热心网友
时间:2023-11-04 22:31
这是我做的一个实例你看看
/**
* 获取需要同步的IP资源
* @return
*/
public String findIpSyn(){
List<Map<String, Object>> array = new ArrayList<Map<String,Object>>();
try {
Map<String, Object> nodeValues = resNodeTypeService.findNodeValues();
Map<String, Object> nodeips = resTasknodeService.findNodeips();
Set<String> vSet = nodeValues.keySet();
Set<String> iSet = nodeips.keySet();
for (String sv : vSet) {
Map<String, Object> bean = new HashMap<String, Object>();
if(!nodeips.containsKey(sv)){ //只不过你这里判断是相同就不需要加 !
bean.put("nodeValue", sv);
bean.put("status", 0);
}
array.add(bean);
}
for (String si : iSet) {
Map<String, Object> bean = new HashMap<String, Object>();
if(!nodeValues.containsKey(si)){ //只不过你这里判断是相同就不需要加 !
bean.put("nodeValue", si);
bean.put("status", 1);
}
array.add(bean);
}
} catch (Exception e) {
e.printStackTrace();
}
Map<String, Object> jsonMap = new HashMap<String, Object>();
jsonMap.put("total", array.size());
jsonMap.put("rows", array);
setJsonData(JSONObject.fromObject(jsonMap).toString());
return SUCCESS;
}