Wie man den Unterschied zwischen zwei Karten Java?

Ich habe zwei Karten als unten :

Map<String, Record> sourceRecords;
Map<String, Record> targetRecords;

Ich will dir die Schlüssel, die unterscheiden sich von jeder der Karten.ich.e.

  1. Es zeigt kartierschlüssel verfügbar in sourceRecords aber nicht in targetRecords.
  2. Es zeigt kartierschlüssel verfügbar in targetRecords aber nicht in sourceRecords.

Habe ich es wie folgt :

Set<String> sourceKeysList = new HashSet<String>(sourceRecords.keySet());
Set<String> targetKeysList = new HashSet<String>(targetRecords.keySet());

SetView<String> intersection = Sets.intersection(sourceKeysList, targetKeysList);
Iterator it = intersection.iterator();
while (it.hasNext()) {
    Object object = (Object) it.next();
    System.out.println(object.toString());
}

SetView<String> difference = Sets.symmetricDifference(sourceKeysList, targetKeysList);
ImmutableSet<String> immutableSet = difference.immutableCopy();

BEARBEITEN

if(sourceKeysList.removeAll(targetKeysList)){
            //distinct sourceKeys
            Iterator<String> 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<String> 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);
            }
        }

Ich bin in der Lage zu finden, den gemeinsamen Schlüssel, aber keine eindeutige Schlüssel. Bitte helfen Sie.

  • Sind Sie auf der Suche nach Guave ist Sets.symmetricDifference(source.keySet(), target.keySet())?
InformationsquelleAutor Robot | 2016-06-24
Schreibe einen Kommentar