Datentypen Einträge zweier Matrizen vergleichen

Kabauter

Mitglied
Moin zusammen,

Gibt es eine schnellere Methode zwei unterschiedlich große Matrizen auf ihre gleichen Einträge zu überprüfen als mit 4 verschachtelten for-Schleifen?

Grüße
 
Inwiefern unterscheiden die Matrizen sich denn in ihren Dimensionen?
Am Besten mal ein kleines Beispiel der Matrizen die vergleichen werden sollen.
 
Die Dimensionen können sehr unterschiedlich sein. Die erste Matrix könnte zum Beispiel 2x2 und die andere Matrix 50x50 sein.
Java:
int matrix1 [][] = {{0, 1}, {2, 5}};
int matrix2 [][] = new int[50][50];

Dann sollten alle Einträge von Matrix1 in Matrix2 gefunden werden. Der einfachste Weg wäre jetzt mit den 4 for-Schleifen. Aber vielleicht geht es ja auch etwas effizienter/schneller?
 
Sind es denn immer 2 Dimensionen? Dann wäre die Größe dieser Dimensionen nämlich uninteressant.
Dann könnte man die Arrays einfach beide zu 1D-Array wandeln und die gemeinsamen Elemente filtern.

Hier mal ein kleines Beispiel:
Java:
int[][] a = {
        {1, 2, 3},
        {4, 10, 6},
        {7, 8, 9, 12, 13, 14, 15}
};
int b[][] = {
        {1, 2},
        {3, 4},
        {5},
        {6, 7, 8, 9}
};

Stream<Integer> entriesA = Stream.of(a).flatMapToInt(IntStream::of).boxed();
List<Integer> entriesB = Stream.of(b).flatMapToInt(IntStream::of).boxed().collect(Collectors.toList());
List<Integer> same = entriesA.filter(entriesB::contains).collect(Collectors.toList());
 

Zurück
Oben