Ich habe zwei List<Object[]>
und ich muss die Werte darin vergleichen und eine endgültige Liste mit nur eindeutigen Werten erstellen.Vergleichen Sie zwei Liste <Object[]> effizient in Java
Ex:
List<Object[]> list1 has n rows of object list with 5 columns
[[val1,val2,val3,val4,val5],[val1_,val2_,val3_,val4_,val5_]]
List<Object[]> list2 has n rows of Object list with 4 columns
[[val3_,val4_,val5_,val6_],[val2,val3,val4,val5]]
Die Zusammensetzung der zweiten bis fünften Spalte von Elementen in Object
Array in der list1
könnte im list2
mit den Elementen in Object
Array entsprechen. Wenn alle diese Spalten übereinstimmen, sollte das in der neuen List
nicht wiederholt werden. Oder, anstatt eine neue Liste zu verwenden, kann ich einfach den Inhalt in list1
selbst aktualisieren. Wenn list2
etwas Einzigartiges hat, das list1
nicht hat, werde ich es der Liste hinzufügen. Leider wird die Ausgabe meines Programms nur List<Object[]>
ergeben. Kann mir bitte jemand sagen, wie ich diesen Vergleich effizient machen kann?
Was haben Sie bisher geschrieben? Sie sagen auch 'n' Zeilen, aber was ist die höchste Anzahl von' n'? Sie können sich voroptimieren ... Machen Sie sich einen Vergleich und machen Sie einen Benchmark, dann sehen Sie, wo Sie sich verbessern müssen, wenn Sie es brauchen. –
Willst du sagen, dass du eine einzigartige Werteunion willst? Wenn das der Fall ist, können Sie sie vielleicht einfach zu einem HashSet hinzufügen und dann eine ArrayList mit dem HashSet erstellen. Dies würde Ihnen eine eindeutige Menge von Werten geben (wenn ich die Frage verstehe). Was sind die Objekte? – markg
@markg, HashSet wird nicht funktionieren, da Java-Arrays keine Gleichheit implementieren. –