Besten vergleichen Sie Zwei Listen von Objekten, in Java

Habe ich zwei Listen von Objekten.

public class CustomObj {
    Long key1;
    Integer key2;
    Integer key3;
    Integer key4;
    Integer key5;
    BigDecimal value1
    BigDecimal value2
    BigDecimal value3
    BigDecimal value4
    BigDecimal value5; }

public class CustomKey {
    Long key1;
    Integer key2;
    Integer key3;
    Integer key4;
    Integer key5; }

Objekt nicht über eine eindeutige Kennung, aber 5 Felder zu key1 key5 aus Objekt einen eindeutigen Schlüssel für das Objekt. Ich habe zum vergleichen von zwei Listen von Objekten. Ich habe zum Vergleich die Werte in Objekt nur bei eindeutiger Schlüssel bestehend aus key1-key5 Felder sind die gleichen in beiden Objekten.

Derzeit bin ich die Schaffung von zwei HashMaps, die zwei Listen.

Map<CustomKey, CustomObj>

Dann habe ich Durchlaufen zunächst hashmap, für jeden Schlüssel, den ich überprüfen, ob dieser Schlüssel vorhanden ist, in anderen hashmap und wenn es das tut, bekomme ich das Objekt von anderen hashmap und dann vergleichen Sie diese beiden Objekte.

Gibt es einen besseren Weg, es zu tun?

  • Kann man den code, wie du Sie vergleichen? Dann können wir Ihnen sagen, wenn das ist okay oder nicht.
  • Haben Sie das Überschreiben von equals/hashcode Methode
  • Nehmen wir an ich habe zwei Karten nämlich objMap1, objMap2 generiert aus der Liste der Objekte. ` for(Map.Eintrag<CustomKey, CustomObject> entry : objMap1.entrySet()) { CustomKey-Schlüssel = Eintrag.getKey(); CustomObject a = Eintrag.getValue(); CustomObject b = objMap2.get(key); }`, Wie ich zwei Objekte mit dem gleichen key nun, ich kann vergleichen Sie die Werte für diese Objekte.
  • Was meinst du mit "ich habe zu vergleichen, die Werte in Objekt nur bei eindeutiger Schlüssel bestehend aus key1-key5 Felder sind die gleichen in beiden Objekten"? Klingt wie Sie sowieso müssen, vergleichen Sie alle Felder, um festzustellen, dass zwei Objekte gleich sind.
Schreibe einen Kommentar