Ich habe zwei Listen von Arrays.
Wie kann ich die Gleichheit dieser mit Java 8 und seinen Funktionen vergleichen , ohne externe Bibliotheken zu verwenden? Ich suche nach einer "besseren" (übergeordneten, kürzeren, effizienteren) Lösung als Brute-Force-Code wie diesem (ungetesteter Code, kann Tippfehler usw. enthalten, nicht der Punkt der Frage):
boolean compare(List<String[]> list1, List<String[]> list2)
{
// tests for nulls etc omitted
if(list1.size() != list2.size()) {
return false;
}
for(i=0; i<list1.size(); ++i) {
if(!Arrays.equals(list1.get(i), list2.get(i))) {
return false;
}
}
return true;
}
Oder wenn es keinen schöneren Weg gibt, ist das auch eine gültige Antwort.
Bonus: Wenn Java 9 eine noch bessere Möglichkeit bietet, was auch immer Java 8 bieten kann, können Sie es auch erwähnen.
Bearbeiten: Nachdem ich mir die Kommentare angesehen und gesehen habe, wie diese Frage mäßig heiß geworden ist, denke ich, dass das " Bessere " das erste Überprüfen der Länge aller Arrays vor dem Überprüfen des Array-Inhalts beinhalten sollte , da dies das Potenzial hat, Ungleichheit viel schneller zu finden, wenn sie innerlich ist Arrays sind lang.