Worin besteht der Sinn und Anwendungsbereich von Dreidimensionalen Arrays?

ARadauer

Top Contributor
In einer Schachtel sind Schnellhefter drinnen wo Zettel mit Zeilen und Spalten drinnen sind
1 2 3 4 5 dimensional

Aber grundsätzlich würd ich sowas anders abbilden...
 

M_Schaffrath

Aktives Mitglied
Arrays bieten die Möglichkeit, Werte anstelle von normalen Variablennamen über Indizes/Koordinaten zu benennen. Ob dem tatsächlich eine dreidimensionale Struktur zugrunde liegt wie vielleicht bei Punkten im Raum oder Containern auf einem Frachter oder ob es einfach ein verschachteltes Referenzierungssystem gibt (Die Welt hat eine Liste von Staaten, jeder Staat eine Liste von Orten, jeder Ort eine Liste von Straßen, jede Straße ein Liste von Hausnummern, jede Hausnummer eine Liste von Etagen, jede Etage eine Liste von Wohnungen).

Das Initialisieren kann natürlich schnell viel Schreibarbeit werden...

Java:
// der Inhalt von Kartons, die 5 x 5 x 5 auf einer Palette gestapelt sind
String[][][] inhalt = new String[5][5][5];

// Inhalt von Kartons auf einer 3 x 3 x 3-Palette
String[][][] nochEinInhalt = new String[][][] {
   // erste Lage
   {
      {"Dosen", "Brot", "Bier"}, // erste Reihe
      {"Hosen", "Rot", "Tier"}, // zweite Reihe
      {"Rosen", "Lot", "Zier"} // dritte Reihe
   },
   // zweite Lage
   {
      {"Hasen", "Reis", "Kaffee"}, // erste Reihe
      {"Nasen", "Mais", "Toffee"}, // zweite Reihe
      {"Rasen", "Gneiss", "Affe"} // dritte Reihe
   },
   // dritte Lage
   {
      {"Kiwi", "Monitor", "Glas"}, // erste Reihe
      {"Zivi", "Garagentor", "Gras"}, // zweite Reihe
      {"HiWi", "Skeletor", "Spaß"} // dritte Reihe
   }
};
 

parabool

Bekanntes Mitglied
Oder (für den eher visuellen Lerntyp) Zauberwürfel ? Wikipedia

Java:
int[][][] wuerfel = new int[3][3][3];

 System.out.println(wuerfel[1][1][1]; // wäre die Mitte, beim Rubik’s Cube eigentlich das Gelenk

// alle 8 Ecken:
 System.out.println(wuerfel[0][0][0]);
 System.out.println(wuerfel[2][0][0]);
 System.out.println(wuerfel[0][2][0]);
 System.out.println(wuerfel[2][2][0]);
 System.out.println(wuerfel[0][0][2]);
 System.out.println(wuerfel[2][0][2]);
 System.out.println(wuerfel[0][2][2]);
 System.out.println(wuerfel[2][2][2]);
 
Zuletzt bearbeitet:

HimBromBeere

Top Contributor
Oder um es mit den Worten meine Geometrie-Professors zu sagen: "wir leben nicht in einer 3dimensionalen Welt, sondern in einer n-dimensiponalen." Soll heißen: du kannst dir zu jeder xyz-Koordinate im Raum z.B. einen Druck, eine Temperatur oder was weiß ich sonst noch zuordnen, was dann eine vierte Dimension wäre. Genauso ist es mit Arrays, wo jedes Tripel für eine Koordinate steht und dann dementsprechend einen Wert (z.B: Temperatur) besitzt.
 
B

bygones

Gast
Oder um es mit den Worten meine Geometrie-Professors zu sagen: "wir leben nicht in einer 3dimensionalen Welt, sondern in einer n-dimensiponalen." Soll heißen: du kannst dir zu jeder xyz-Koordinate im Raum z.B. einen Druck, eine Temperatur oder was weiß ich sonst noch zuordnen, was dann eine vierte Dimension wäre. Genauso ist es mit Arrays, wo jedes Tripel für eine Koordinate steht und dann dementsprechend einen Wert (z.B: Temperatur) besitzt.
was aber wie schon gesagt wurde durch ein intuitiveres model wesentlich angehmer zu pflegen ist, als einen n Dimensionalen raum als n-dim. Array abzubilden....
wer will schon garantieren dass man bei [c]array[8][4][4][2][1][2] = 2[/c] den richtigen index getroffen hat ;-)
 

faetzminator

Gesperrter Benutzer
Normalerweise würde man das nicht mit multidimensionalen Arrays machen. Um auf das obige Beispiel zurückzugreifen: Ich würde da eine [c]List<Schnellhefter>[/c] verwenden, wobei [c]Schnellhefter[/c] wiederum eine [c]List<Zettel>[/c] beinhaltet etc.
 
V

vanny

Gast
Schliesse mich da faetzminator an,

ausser bei einer Tabelle oder einer Matrix, bei der es sich anbietet, fährt man mit aussagekräftigen DatenTypen, die dann halt die nächste Liste verwalten um einiges überichtlicher.
 

Marco13

Top Contributor
Tatsächlich gibt es IMHO nur wenige Bereiche, wo ein 3D-Array (oder auch nur ein 2D-Array) wirklich Sinn macht. In vielen Bereichen wäre eine Abstraktion im Sinne der Objektstrukturen (wie schon angedeutet) sinnvoller. Wenn es wirklich nur im "irgendeine abstrakte n-Dimensionale Indizierung" geht, würde es sich in den meisten Fällen vermutlich anbieten, sowas wie
Java:
class Array3D
{
    Object get(Index3D index);
    ....
}
class Index3D { int x, int y, int z; ... }
zu verwenden, um damit die konkrete Implementierung hinter einem klaren Interface zu verstecken. Und die Fälle, wo es aus Effizienzgründen sinnvoll sein könnte, einen 3D-Array zu verwenden... sind IMHO tendenziell die, wo man dann DOCH einen 1D-Array [c]float array[] = new float[sizeX*sizeY*sizeZ][/c] verwenden sollte ;)
 

California

Aktives Mitglied
Wenn Du mit Matrizen rechnest, braucht Du sowas, z.B. ist der vollständige Zeiger auf ein Objekt im Raum eine 3,3 Matrix:

Entfernung x, Geschwindigkeit x, Beschleunigung x
Entfernung y, Geschwindigkeit y, Beschleunigung y
Entfernung z, Geschwindigkeit z, Beschleunigung z

Meistens in der Physik benötigt. Diese Werte werden dann auch mit Matrixalgebra weiterberechnet.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U Worin besteht der Unterschied zwischen call by reference und call by value? Java Basics - Anfänger-Themen 14
T Unterschiedliche Datentypen - worin abspeichern? Java Basics - Anfänger-Themen 18
B Überprüfung dass Zahl nur aus 0,1 besteht Java Basics - Anfänger-Themen 2
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
K Erste Schritte Eingabetext besteht aus mehreren Zeilen? Java Basics - Anfänger-Themen 3
T socket.close aber verbindung besteht noch Java Basics - Anfänger-Themen 4
J Bestimmen ob String aus Kleinbuchstaben besteht Java Basics - Anfänger-Themen 16
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
F Hat es noch einen Sinn, alte Versionen zu lernen Java Basics - Anfänger-Themen 45
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
H Sinn von Interfaces Java Basics - Anfänger-Themen 21
W Sinn eines Singleton ? Java Basics - Anfänger-Themen 14
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
E Sinn: final in Parameterliste verwenden Java Basics - Anfänger-Themen 2
B Sinn von Lambdas? Java Basics - Anfänger-Themen 16
5 Welchen Sinn hat ein Runnable Java Basics - Anfänger-Themen 6
P OOP Sinn von abstrakten Klassen Java Basics - Anfänger-Themen 2
M Kapselung Datenkapselung Sinn direkter Zugriff? Java Basics - Anfänger-Themen 1
B Der Sinn von Arrays Java Basics - Anfänger-Themen 2
Q Container sinn? Java Basics - Anfänger-Themen 3
S string index out of range - es ergibt keinen Sinn Java Basics - Anfänger-Themen 6
C Sinn eines Interfaces? Java Basics - Anfänger-Themen 4
J Sinn/Nutzen von Scanner Java Basics - Anfänger-Themen 23
B Sinn von Reflections Java Basics - Anfänger-Themen 10
H Vererbung Prinzip der Ersetzbarkeit-Sinn? Java Basics - Anfänger-Themen 9
F Sinn der SuppressWarnings("unused")-Annotation Java Basics - Anfänger-Themen 5
R Sinn des programmes Java Basics - Anfänger-Themen 10
W Sinn von Konstruktorsyntax und finalize Java Basics - Anfänger-Themen 14
J Datentypen Was ist der Sinn vom Datentyp "char" ? Java Basics - Anfänger-Themen 11
T Sinn von finally? Java Basics - Anfänger-Themen 3
M Variablen Zinseszinsberechnung - Variable ergibt keinen Sinn Java Basics - Anfänger-Themen 15
A Klassen Sinn des Konstruktors Java Basics - Anfänger-Themen 12
P Sinn des Security Managers Java Basics - Anfänger-Themen 2
J Welchen Sinn haben abstrakte Methoden? Java Basics - Anfänger-Themen 4
D Sinn von Jar Dateien Java Basics - Anfänger-Themen 5
D Sinn von Interfaces - Wozu? Java Basics - Anfänger-Themen 9
K Sinn eigener Exceptions Java Basics - Anfänger-Themen 11
Luk10 Sinn von Instanzierung ohne Referenz Java Basics - Anfänger-Themen 7
hdi Sinn von RuntimeExceptions? Java Basics - Anfänger-Themen 90
Developer_X NullPointer Exception ohne Sinn Java Basics - Anfänger-Themen 19
L Sinn hinter Generic? Java Basics - Anfänger-Themen 5
M Der Java Schlüsselwort null; ?Welche Anweisung und Sinn? Java Basics - Anfänger-Themen 12
A Macht es Sinn Arraylisten mit Gettern zu übergeben? Java Basics - Anfänger-Themen 19
M Variable überwachen und Sinn eines Threads Java Basics - Anfänger-Themen 7
G Sinn vo OOP Java Basics - Anfänger-Themen 5
P Unterschied zwischen Interface und Vererbung und Sinn? Java Basics - Anfänger-Themen 5
G sinn von JList Java Basics - Anfänger-Themen 6
K Sinn von Interfaces Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben