2016-07-26 3 views
1

Ich bin neu in Java und habe ein Video über 2D-Arrays online gesehen. Aber was ist mit 3D-Arrays?Sind 3D-Arrays besser als andere Array-Typen in Java?

Ist es möglich, ein 3D-Array in Java zu erstellen? Wenn ja, wie kann dies geschehen? Würde die Verwendung von 3 separaten 1D-Arrays (die miteinander verbunden sind) der Verwendung von 1 3D-Array entsprechen? Was ist schließlich die Effizienz beim Durchqueren eines 3D-Arrays?

+2

Mögliches Duplikat von [Java N-dimensionalen Arrays] (http://stackoverflow.com/questions/4770926/java-n-dimensional-arrays) –

+1

Nein, drei 1D-Arrays sind nicht dasselbe wie ein 3D-Array. –

+4

Ein 3D-Array von Primitiven Ganzzahlen: 'int [] [] [] Array;' Ob Sie ein einzelnes 3D-Array, 3 x 1D-Arrays oder eine andere Datenstruktur verwenden, hängt ganz von der Art des Problems ab. –

Antwort

1

Das Erstellen eines 3D-Arrays ist in Java durchaus möglich. Es ist so einfach wie den Typ T[][][] array; zu deklarieren. Drei separate 1D-Arrays sind nicht äquivalent zu einem 3D-Array. Sie benötigen n 2D-Arrays, die einem 3D-Array entsprechen. Die Effizienz beim Durchlaufen eines 3D-Arrays ist praktisch O (n³).

+0

Also, für diejenigen, die durch Algebra/trig/was auch immer geschlafen haben, ist 'O (n³)' eine gute Sache? Und wie Tim in einem Kommentar erwähnte, würde nicht das, was Sie versuchen, das Design beeinflussen? –

+1

Nun O (n³) bedeutet, dass die Zeit, die benötigt wird, um ein n × n × n 3D-Array zu durchlaufen, proportional zu n³ ist. So würde beispielsweise das Durchqueren einer 1 × 1 × 1-3D-Anordnung 1 Iteration erfordern, während das Durchqueren einer 2 × 2 × 2-Anordnung 8 Iterationen erfordern würde. Aber je nach dem, was Sie tun, ist ein 3D-Array möglicherweise nicht die beste Datenstruktur für die Lösung Ihres Problems. – kamoroso94

Verwandte Themen