große Matrizen, Performance, (Pointer?)

Status
Nicht offen für weitere Antworten.
C

carsten123

Gast
Hallo,

ich habe folgendes Problem:

Ich arbeite mit einer relativ großen "3D-Matrix" (double[][][] matrix), also eine Art Würfel (3 Dimensionen). Ich möchte nun aus diesem Würfel verschiedene Ebenen (z.B. eine Scheibe aus der X-Y Ebene), ich nenne es mal extrahieren und diese Ebene (eine 2-dimensionale Matrix) in einer JTable darstellen.

Momentan lege ich dafür eine neue 2-dimensinale Matrix an und kopiere die entsprechenden Werte mittels eher "unschönem Code" da hinein und stelle dann die Kopie der Daten in einer JTable dar. Das Problem ist aber, dass die Matrizen recht groß sind und das kopieren doch relativ lange dauert (und es keinen Sinn macht zu Kopieren, da die Werte ja bereits existieren). Es fehlt also nur eine prktikable Möglichkeit an sie heranzukommen.

Kennt jemand eine Möglichkeit dieses Problem vielleicht zu umgehen. Mit Pointern wäre es ja relativ einfach, aber die gibt es ja leider (noch nicht) in Java.
Gibt es da eine performantere Alternative zum Kopieren, da das Kopieren eigentlich total überflüssig ist.

Ich hab schon probiert es mit dem Datentyp Double zu machen, was aber auch nicht wirklich Sinn macht.

Ein Ansatz ist vielleicht, anstatt den Datentyp
Code:
 int
ein
Code:
 int[]
mit nur einem Element zu verwenden, das hätten den Vorteil, das man eine Art Pointerfunktion erhalten würde, z.B:

Code:
int[] a = {2};
int[] b = a
System.out.println("b: "+b[0]); // b: 2
a[0] = 5;
System.out.println("b: "+b[0]);// b: 5
Diese Lösung macht den Quellcode jedoch extrem hässlich und unverständlich.

Vielleicht weiß ja jemand eine bessere Lösung oder kann mir wenigstens bestätigen, dass es keine bessere Alternative gibt.

schon mal danke im Voraus

carsten
 
C

carsten123

Gast
noch mal kurz und knapp:

ich möchte also Teilmatrizen aus mehrdimensionaler Arrays ohne Kopieren erzeugen
 

Kim Stebel

Bekanntes Mitglied
du könntest das array in einem objekt kapseln mit gettern und settern...dann brauchst du nur einen neuen wrapper erstellen, der die koordinaten entsprechend umrechnet, was bei "scheiben" ja sehr einfach sein dürfte.
 

tfa

Top Contributor
carsten123 hat gesagt.:
noch mal kurz und knapp:

ich möchte also Teilmatrizen aus mehrdimensionaler Arrays ohne Kopieren erzeugen

Kapsle dein Array in einer Matrix-Klasse. Zusätzlich hat die Klasse Objektvariablen, die die Koordinaten des Ursprungs der Matrix sowie die Ausdehnung in x-, y- und z-Richtung beschreiben.
Wenn du eine neue Teilmatrix brauchst, erzeugst du ein neues Matrix-Objekt, das eine Referenz auf das selbe Array beinhaltet und die Koordinaten und Dimensionen entsprechend verändert.
 
C

carsten123

Gast
jop die idee ist gut, hilft mir aber glaube ich nicht 100% weiter.
ich möchte ja die Teilmatrix in einer JTable darstellen. Diese besitzt bei mir ein von DefaultTableModel abgeleitetes Model und dafür benötige ich ein 2-dimensionales Object-Array object[][].

@tfa -> dann habe ich ja immer noch bein 2-dim. Array, bzw. ich stehe dann ja wieder vor dem selben Problem
sonst müsste ich ja das Gesamte TableModel und der Renderer ändern, oder hab ich es flasch verstanden?
 

tfa

Top Contributor
carsten123 hat gesagt.:
jop die idee ist gut, hilft mir aber glaube ich nicht 100% weiter.
ich möchte ja die Teilmatrix in einer JTable darstellen. Diese besitzt bei mir ein von DefaultTableModel abgeleitetes Model und dafür benötige ich ein 2-dimensionales Object-Array object[][].

@tfa -> dann habe ich ja immer noch bein 2-dim. Array, bzw. ich stehe dann ja wieder vor dem selben Problem
sonst müsste ich ja das Gesamte TableModel und der Renderer ändern, oder hab ich es flasch verstanden?

Du brauchst kein 2-dimensionales Array für ein TableModel. Leite dir ein eigenes TableModel ab und überschreibe getValueAt() entsprechend. Hier im Forum findest du brauchbare FAQ zu dem Thema: JTable-Daten (4. Möglichkeit), allgemein.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Arbeitsfeld in gleich große Bereiche einteilen Java Basics - Anfänger-Themen 2
G Best Practice Wie große "Tabellen" effizient durchsuchen und Daten händeln? Java Basics - Anfänger-Themen 15
C Große Zahlen vergleichen Java Basics - Anfänger-Themen 19
S 4 große Textdateien zu einer Mergen Java Basics - Anfänger-Themen 5
K Große Datenliste Java Basics - Anfänger-Themen 2
E Große Datenmengen effizient in CSV File speichern Java Basics - Anfänger-Themen 4
1 Extrem große Variable Java Basics - Anfänger-Themen 1
S Best Practice MVC und große Datenmengen aus einer mySQL - Datenbank Java Basics - Anfänger-Themen 24
M Mergesort Aufgabe große Probleme Java Basics - Anfänger-Themen 9
P Schneller Quadratzahltest für beliebig große natürliche Zahlen Java Basics - Anfänger-Themen 2
T Scanner für große Textdatei Java Basics - Anfänger-Themen 11
N Input/Output Große Dateien schnell Speichern/auslesen Java Basics - Anfänger-Themen 16
B große jpeg verarbeiten Java Basics - Anfänger-Themen 8
K Große Gleitkommazahlen runden Java Basics - Anfänger-Themen 8
X Compiler-Fehler javac - 08 eine zu große int? Java Basics - Anfänger-Themen 11
turmaline String teilen in gleich große strings Java Basics - Anfänger-Themen 15
F Große Potenzen berechnen Java Basics - Anfänger-Themen 6
J Große .txt einlesen - Idee? Java Basics - Anfänger-Themen 16
E Datentypen Große Zahl erzeugen Java Basics - Anfänger-Themen 5
P Kleines Projekt -> Große Überlegungen Java Basics - Anfänger-Themen 2
F Große Daten und große Array Java Basics - Anfänger-Themen 21
O Performant große Dateien durchsuchen Java Basics - Anfänger-Themen 8
J Große animierte Gif preloaden und solange mit einer nicht animierten ersetzen Java Basics - Anfänger-Themen 5
Povlsen84 Datentypen Große, sortierte, schnelle Datenstruktur Java Basics - Anfänger-Themen 9
H Große Projekte mit Java - Ausführbare Datei Java Basics - Anfänger-Themen 2
K Eclipse EMF und das große HÄ? Java Basics - Anfänger-Themen 5
T .split(";") nicht gleich große arrays werden erzeu Java Basics - Anfänger-Themen 2
G String aus Zahlen multiplizieren -> unendlich große ! Java Basics - Anfänger-Themen 13
M Spielt der Debugger bei java eine große Rolle Java Basics - Anfänger-Themen 3
L JTextArea große setzen Java Basics - Anfänger-Themen 5
S große probleme mit java Java Basics - Anfänger-Themen 6
R große Datenmenge in Datei schreiben Java Basics - Anfänger-Themen 8
M FileOutputStream und zu große Zahlen! Java Basics - Anfänger-Themen 10
J Große *.Text Datei zum verschicken in viele kleine Java Basics - Anfänger-Themen 7
B Probleme große Strings zu schreiben Java Basics - Anfänger-Themen 2
A große errechnete datenmengen sofort in datei schreiben? Java Basics - Anfänger-Themen 6
S Große Text dateien einbinden Java Basics - Anfänger-Themen 3
R große Zahlen Java Basics - Anfänger-Themen 4
R Große Zahlen Java Basics - Anfänger-Themen 3
T Große Zahlen aufgesplittet in verketteter Liste speichern Java Basics - Anfänger-Themen 4
N Große Probleme mit StingBuffer und Array Java Basics - Anfänger-Themen 2
S 2D Array Matrizen Java Basics - Anfänger-Themen 7
O Erstes Programm: Matrizen Multiplikation Java Basics - Anfänger-Themen 10
K Datentypen Einträge zweier Matrizen vergleichen Java Basics - Anfänger-Themen 4
E 2 Matrizen multiplizieren - Output fehlt... Java Basics - Anfänger-Themen 5
H Erste Schritte Determinantenberechnung von Matrizen Java Basics - Anfänger-Themen 1
U Erste Schritte Aufbau eines kleinen Matrizen-Programms(MVC; OOP) Java Basics - Anfänger-Themen 20
B summe von 2 Matrizen Java Basics - Anfänger-Themen 20
K Multiplikation zweier Matrizen Java Basics - Anfänger-Themen 23
R Matrizen nebeneinander ausgeben. Java Basics - Anfänger-Themen 1
B Matrizen Operationen Java Basics - Anfänger-Themen 7
S Bearbeitung von Matrizen Java Basics - Anfänger-Themen 14
A Matrizen aufgabe Java Basics - Anfänger-Themen 46
U Größenvergleich / Dimensionsvergleich zweier Matrizen Java Basics - Anfänger-Themen 2
N NullPointerException beim Addieren von Matrizen Java Basics - Anfänger-Themen 3
L Matrizen aufteilen Java Basics - Anfänger-Themen 3
P Matrizen zusammenfügen Java Basics - Anfänger-Themen 8
M Array Matrizen, int[][] Java Basics - Anfänger-Themen 5
K Matrizen Multiplikation Java Basics - Anfänger-Themen 3
L Mit matrizen rechnen Java Basics - Anfänger-Themen 19
J Matrizen Java Basics - Anfänger-Themen 10
C Dynamische Matrizen Java Basics - Anfänger-Themen 4
C Verwendung von Matrizen in einer Schleife Java Basics - Anfänger-Themen 5
M Speichern von Matrizen in Maps günstiger als in Arrays? Java Basics - Anfänger-Themen 22
J Einlesen von Werten in zwei Matrizen Java Basics - Anfänger-Themen 4
G Addition von 2 Matrizen Java Basics - Anfänger-Themen 31
M Matrizen zeilenweise einlesen (Größe unbekannt) Java Basics - Anfänger-Themen 4
S ? Matrix / Matrizen ? Java Basics - Anfänger-Themen 32
O HashTable kann ohne Performance-Verlust in Multithreaded-Anwendungen eingesetzt werden. Java Basics - Anfänger-Themen 6
N Java-Performance messen Java Basics - Anfänger-Themen 1
B Performance-Vergleich mit C++ Java Basics - Anfänger-Themen 55
P Priority Queue Performance Java Basics - Anfänger-Themen 3
P Performance Array und Liste Java Basics - Anfänger-Themen 13
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
I Erste Schritte Resource Bundle - Alles in einem File oder mehrere? => Faktor Performance Java Basics - Anfänger-Themen 2
E Hilfe zur Performance Verbesserung gesucht Java Basics - Anfänger-Themen 1
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
S Performance-/Stress Test für Webanwendung Java Basics - Anfänger-Themen 2
R Datei kopieren: Performance erhöhen Java Basics - Anfänger-Themen 10
S Wie performance lastig sind rekursionen Java Basics - Anfänger-Themen 13
N Bessere Performance durch final: wann denn überhaupt? Java Basics - Anfänger-Themen 28
J Softwaresynthesizer Performance? Java Basics - Anfänger-Themen 11
I Anzahl einer Liste (Performance) Java Basics - Anfänger-Themen 2
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
S Performance HashMap<=>Array Java Basics - Anfänger-Themen 17
J Arrays erweitern - Performance vs Speicherverbrauch Java Basics - Anfänger-Themen 6
M Einträge in Dateien zählen - Performance-Problem Java Basics - Anfänger-Themen 10
S unterschied in performance Java Basics - Anfänger-Themen 4
hdi Worst-Performance-Award für Arbeiten mit ListModel Java Basics - Anfänger-Themen 7
hdi Performance Frage (Threads,Swing) Java Basics - Anfänger-Themen 4
V Performance Lesen und Schreiben aus/in Streams Java Basics - Anfänger-Themen 4
G import .; - Speicherauslastung, Performance Java Basics - Anfänger-Themen 14
G Performance Java Basics - Anfänger-Themen 18
C Performance IO vs. NIO Java Basics - Anfänger-Themen 5
S dynamic arrays/ performance Java Basics - Anfänger-Themen 2
RaoulDuke Arbeitsweise / Speichernutzung / Performance Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben