我有两个地图,如下所示:
Map sourceRecords;
Map targetRecords;
我想获得与每个maps.ie不同的键
它显示了在sourceRecords中可用但在targetRecords中不可用的映射键。
它显示了targetRecords中可用的映射键,而sourceRecords中没有。
我做到了如下:
Set sourceKeysList = new HashSet(sourceRecords.keySet());
Set targetKeysList = new HashSet(targetRecords.keySet());
SetView intersection = Sets.intersection(sourceKeysList, targetKeysList);
Iterator it = intersection.iterator();
while (it.hasNext()) {
Object object = (Object) it.next();
System.out.println(object.toString());
}
SetView difference = Sets.symmetricDifference(sourceKeysList, targetKeysList);
ImmutableSet immutableSet = difference.immutableCopy();
编辑
if(sourceKeysList.removeAll(targetKeysList)){
//distinct sourceKeys
Iterator it1 = sourceKeysList.iterator();
while (it1.hasNext()) {
String id = (String) it1.next();
String resultMessage = "This ID exists in source file but not in target file";
System.out.println(resultMessage);
values = createMessageRow(id, resultMessage);
result.add(values);
}
}
if(targetKeysList.removeAll(sourceKeysList)){
//distinct targetKeys
Iterator it1 = targetKeysList.iterator();
while (it1.hasNext()) {
String id = (String) it1.next();
String resultMessage = "This ID exists in target file but not in source file";
System.out.println(resultMessage);
values = createMessageRow(id, resultMessage);
result.add(values);
}
}
我能够找到通用键,但找不到不同的键。请帮忙。