2DArray manuell dynamisch erweitern

Status
Nicht offen für weitere Antworten.
H

HugoBoss

Gast
Hallo,

ich will mein 2DArray bei dem es 1. auf Geschwindigkeit ankommt kopiert und gleichzeit vergrößern.
Weiterhin weiß ich ungefähr die maximale anzahl an Zeilen welche das 2DArray hat nur nicht ganz genau, daher will ich auch kein Vector,ArralyList und dergleichen. Habe gestern ein Buch gesehen im Laden da stand ne gute Lösung drin hatte nur kein fotohandy parat :wink:

if will alle Zeile/spalten aus dem alten tabellendaten 2DArray kopieren in das größere tabellendatenNew das die länge von tabellendaten +100 weitere zeilen hat. Danach referenziere ich mit tabellendaten auf das neue tabellendatenNew 2DArray. Natürlich geht das proggie so nicht ;-) Könnt ihr mir ein paar weitere schritte zeigen, vor allem ist es sinnig wenn die zeile variable 500 mal läuft 500 mal eine if abfrage zu machen ob die zeile gleich die länge der tabellendaten 2DArray ist?


Code:
private String[] spaltennamen = {"Vorname" , "Nachname" , "Ort" , "Plz" , "Status". "Straße"};
private String[][] tabellendaten = new String [500][6];



Code:
String[][] tabellendatenNew = new String [tabellendaten.length+100][6];

while((line = file.readLine())!= null )
         {  
	           mytokenizer = new StringTokenizer (line,";");
	           anzahlToken = mytokenizer.countTokens();
	           
	           if(zeile == tabellendaten.length)
	           {
	        	  System.arraycopy(tabellendaten,0, tabellendatenNew,0,tabellendaten.length);
	        	  tabellendaten = tabellendatenNew;
	           }	

   
	           
	           for(int i=0; i < anzahlToken; i++)
	           {	        	   
	        	   tabellendaten [zeile][i] = mytokenizer.nextToken().trim();dem string
	           }         
	           zeile++; 
	         
        }
 

Marco13

Top Contributor
Könntest du ggf. nochmal genauer sagen, was gegen eine ArrayList spricht?

Und dann nochmal, was du konkret machst - irgendwie sieht der code so nach einer Misung aus "Einlesen und Vergrößern" aus ...
 
H

HugoBoss

Gast
Code:
BufferedReader file = new BufferedReader(new InputStreamReader(new FileInputStream(absolutePath)));
         String line;
         int zeile=0; //2D Array Zeilen       
         int anzahlToken; //2D Array Spalten
         String[][] tabledataOld = new String [tabledataOld.length+100][5]; 
         while((line = file.readLine())!= null )
         {  
	           mytokenizer = new StringTokenizer (line,";");
	           anzahlToken = mytokenizer.countTokens();	          
	           
	           for(int i=0; i < anzahlToken; i++)
	           {	        	   
	        	   tabledataOld [zeile][i] = mytokenizer.nextToken().trim(); //trim() entfernt leerzeichen vor und nach dem string
	           }         
	           zeile++; 
	           if(zeile == tabledataOld.length)
	           {
	        	   System.arraycopy(tabledataOld,0,tabledataNew,0,tabledataOld.length); 
	        	   tabledataOld = tabledataNew;
	           } 
        }

das tabledataOld 2D array wurde zuerst mit 700 tabellenzeilen initialisiert. Lade ich nun eine datei mit 800 zeilen in mein Programm funktioniert das arraycopy irgendwie. Hat meine Datei aber 801 zeilen, bekomme ich ArrayIndexoutofBoundsException. Die Augabe muss so gelöst werden da arraycopy teil der Augabe ist.
 
S

SlaterB

Gast
> Lade ich nun eine datei mit 800 zeilen in mein Programm funktioniert das arraycopy irgendwie. Hat meine Datei aber 801 zeilen, bekomme ich ArrayIndexoutofBoundsException.

vergrößere das Array um 101 statt 100?!
benutzte eine ArrayList und am Ende toArray(), wenn du die Größe nicht vorher weißt

immer noch gilt: was ist eigentlich die Frage?
 
H

HugoBoss

Gast
SlaterB hat gesagt.:
> Lade ich nun eine datei mit 800 zeilen in mein Programm funktioniert das arraycopy irgendwie. Hat meine Datei aber 801 zeilen, bekomme ich ArrayIndexoutofBoundsException.

vergrößere das Array um 101 statt 100?!
benutzte eine ArrayList und am Ende toArray(), wenn du die Größe nicht vorher weißt

immer noch gilt: was ist eigentlich die Frage?

Die Frage wie es funktioniert? Wenn ich um 101 erhöhe kommt wieder ein fehler sobald es 102 zeilen mehr sind...

Irgendwas stimmt mit meinem code nicht dass es 1x geht aber nicht ein 2.mal.

UND warum wird auf Foren immer versucht (nicht nur hier) die Meinung einem anderen aufzudrücken anstatt auf sein Problem einzugehen. Ich weiß schon dass ich arraylist etc nehmen könnte. Die Aufgabe soll aber mit arracopy gelöst werden.
 
S

SlaterB

Gast
> UND warum wird auf Foren immer versucht (nicht nur hier) die Meinung einem anderen aufzudrücken anstatt auf sein Problem einzugehen.

das ist ganz einfach, du erzählst nämlich nicht, was dein Problem ist,
auch 'Die Frage wie es funktioniert?' hilft nicht, so dass man hier immer noch am Anfang steht:
was ist eigentlich die Frage?


alle anderen Tipps wie ArrayList sind pures Raten, was du eigentlich willst,
aber das sollte man bei dir wohl nicht tun ;)
 

Marco13

Top Contributor
Code:
int array[] = new int[0];
int lineCounter = 0;
while (xxx)
{

    if (array.length <= lineCounter)
    {
        array = enlarge(array, 100);
    }
    array[lineCounter] = bla;
    lineCounter++;
}

private int[] enlarge(int a[], int inc)
{
    int b[] = new int[a.length + inc];
    System.arraycopy(a,0,b,0,a.length);
    return b;
}
So schwer ist das doch nicht. Macht aber nur bedingt Sinn....
 

kasi

Mitglied
hugo,
arrays sind in java nicht dynamisch. nehm dir marcos rat zu herzen und lös es über arraylists. auch wenn java einen garbage collector hast, musst trotzdem nicht tausende arrays erstellen..
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
docmas 2DArray Werte werden nur untereinander ausgegeben Java Basics - Anfänger-Themen 1
Neuling47 2dArray Java Basics - Anfänger-Themen 27
T Diagonale von 2DArray auf gleichheit überprüfen Java Basics - Anfänger-Themen 2
F 2DArray horizontal und vertikal ausgeben Java Basics - Anfänger-Themen 17
F 2DArray jede Spalte Addieren Java Basics - Anfänger-Themen 8
F Warum muss ich ein SSL cert immer manuell hinzufügen? Java Basics - Anfänger-Themen 46
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
F ArrayListe manuell programmieren? Java Basics - Anfänger-Themen 24
E Stream closed - Obwohl nicht manuell geschlossen! Java Basics - Anfänger-Themen 0
J Array manuell vom User eingeben, Zeilenweise Java Basics - Anfänger-Themen 2
D Objekte manuell in GridLayout einfügen Java Basics - Anfänger-Themen 4
G Events manuell aulösen Java Basics - Anfänger-Themen 3
P Item in ComboBox manuell hinzufügen? Java Basics - Anfänger-Themen 3
G Timer manuell auslösen? Java Basics - Anfänger-Themen 3
G Spaltenbreite manuell anpassen bei einer JTable (wie bei.) Java Basics - Anfänger-Themen 13
ff Java-Programm manuell ausfuehren Java Basics - Anfänger-Themen 9
V paint()-methode manuell aufrufen? kein autostart erwuenscht Java Basics - Anfänger-Themen 3
districon Dynamisch Programmierung/Backtracking/Memoization Java Basics - Anfänger-Themen 3
T Klassen Denkfehler im Klassen "dynamisch" instanzieren? Java Basics - Anfänger-Themen 4
J Verundung dynamisch gestalten Java Basics - Anfänger-Themen 21
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
R Datenbank-Werte dynamisch ausgeben Java Basics - Anfänger-Themen 19
D new arraylist (List) dynamisch erstellen Java Basics - Anfänger-Themen 1
B Klassen Klasse dynamisch laden. Java Basics - Anfänger-Themen 8
N Dynamisch erzeugtes Label wird nicht angezeigt, TextField schon Java Basics - Anfänger-Themen 1
D Koordinatensystem dynamisch anpassen Java Basics - Anfänger-Themen 17
J Tableview, ObservableList ein bisschen dynamisch Java Basics - Anfänger-Themen 6
C Array - Länge dynamisch übergeben Java Basics - Anfänger-Themen 7
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
GreyFox Object dynamisch mit werten versehen. Java Basics - Anfänger-Themen 4
G Array dynamisch ausgeben Java Basics - Anfänger-Themen 3
S JTable dynamisch mit Datenbankinhalten füllen Java Basics - Anfänger-Themen 6
F Erste Schritte If Bedingung in Schleife dynamisch erweitern Java Basics - Anfänger-Themen 4
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
V Text aus einer .txt dynamisch ins applet einpassen Java Basics - Anfänger-Themen 0
Y Eingabe-Formular mit JSP dynamisch machen - j/n/wie? Java Basics - Anfänger-Themen 2
N Dynamisch JTree erstellen Java Basics - Anfänger-Themen 3
R Objekte dynamisch erstellen? Java Basics - Anfänger-Themen 14
C Variablen Array dynamisch halten und ausrechnen Java Basics - Anfänger-Themen 14
N Ergebnisse dynamisch in Tabelle schreiben Java Basics - Anfänger-Themen 3
G JObjekte dynamisch vom Server erzeugen lassen Java Basics - Anfänger-Themen 4
I Dynamisch erzeugten Buttons Methoden zuweisen Java Basics - Anfänger-Themen 6
H Objekte dynamisch erzeugen? Java Basics - Anfänger-Themen 6
M Variablen dynamisch variableninhalt von Object auslesen Java Basics - Anfänger-Themen 4
S if-Block dynamisch aufbauen Java Basics - Anfänger-Themen 5
M Static Variable "dynamisch" aufrufen? Java Basics - Anfänger-Themen 8
B Klassen Objekte während der Laufzeit dynamisch anlegen Java Basics - Anfänger-Themen 8
A JButtons dynamisch generieren mit verschiedenen actionhandlern Java Basics - Anfänger-Themen 6
P Scrollpane mit dynamisch erzeugten Komponenten Java Basics - Anfänger-Themen 3
U JPanel dynamisch gestalten Java Basics - Anfänger-Themen 7
R Liste graphischer Objekte z.B. JButton dynamisch erstellen Java Basics - Anfänger-Themen 13
A Dynamisch die Anzahl der Threads in der Cyclic Barrier ändern Java Basics - Anfänger-Themen 2
K Datentypen Full qualified Name dynamisch gestalten Java Basics - Anfänger-Themen 7
M For-Schleifen dynamisch generieren? Java Basics - Anfänger-Themen 10
sqsh statische jlabels dynamisch verwalten Java Basics - Anfänger-Themen 2
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
L Tray-Einträge und dazu passende ActionListener dynamisch erzeugen? Java Basics - Anfänger-Themen 2
D JPanel dynamisch anpassen Java Basics - Anfänger-Themen 5
S Dialog dynamisch vergrößern Java Basics - Anfänger-Themen 2
S Dynamisch Zeit auslesen Java Basics - Anfänger-Themen 11
M JTextPane dynamisch erzeugen Java Basics - Anfänger-Themen 2
J Aufgaben Dynamisch auf Pool von Threads verteilen. Java Basics - Anfänger-Themen 3
D ArrayList dynamisch befüllen Java Basics - Anfänger-Themen 14
G Objekteigenschaften dynamisch erzeugen Java Basics - Anfänger-Themen 7
jnoob Checkbox in Dialog Dynamisch erstellen Java Basics - Anfänger-Themen 2
K suche nicht dynamisch Datenstruktur Java Basics - Anfänger-Themen 6
J ListModel dynamisch und schnell aber sicher ändern Java Basics - Anfänger-Themen 7
M Dynamisch Instanzen erstellen. Java Basics - Anfänger-Themen 4
G Zweidimensionales Array - dynamisch Java Basics - Anfänger-Themen 4
B arrays dynamisch vergrößern Java Basics - Anfänger-Themen 5
V Kundenklasse dynamisch erzeugen und id hochzählen? Java Basics - Anfänger-Themen 4
C Dynamisch durch alle Objektvariablen eines Objektes iteriere Java Basics - Anfänger-Themen 15
P JPanel dynamisch mit ActionListener verwalten Java Basics - Anfänger-Themen 3
R Arraygroesse dynamisch anpassen Java Basics - Anfänger-Themen 8
X this dynamisch, super statisch? Java Basics - Anfänger-Themen 3
G Namen von ArrayListen dynamisch erzeugen Java Basics - Anfänger-Themen 4
H variable dynamisch ändern Java Basics - Anfänger-Themen 2
G Klasse dynamisch ohne Datei compilieren: Fehler Java Basics - Anfänger-Themen 4
G Klasse dynamisch nachladen: Fehler Java Basics - Anfänger-Themen 9
T Array Dynamisch Erweiterm Java Basics - Anfänger-Themen 15
H dynamisch Klassen laden und ausführen Java Basics - Anfänger-Themen 3
M Gleichungen dynamisch erstellen und ausrechnen? Java Basics - Anfänger-Themen 8
G Pfad dynamisch gestalten. Java Basics - Anfänger-Themen 3
B Matrix Dynamisch erzeugen Java Basics - Anfänger-Themen 3
G JTable dynamisch erzeugen. Java Basics - Anfänger-Themen 2
D Labels Dynamisch ? Java Basics - Anfänger-Themen 5
6 Swing: Dynamisch erzeugte Objekte sind verschoben Java Basics - Anfänger-Themen 2
G Variablenname dynamisch vergeben Java Basics - Anfänger-Themen 10
G Länge eines Array trimmen oder dynamisch verändern. Java Basics - Anfänger-Themen 3
M Dynamisch Klassen aufrufen Java Basics - Anfänger-Themen 4
H JLabel dynamisch anzeigen? Java Basics - Anfänger-Themen 10
T ActionListener zu Buttons dynamisch zuordnen Java Basics - Anfänger-Themen 10
G dynamisch Jtextfields erzeugen Java Basics - Anfänger-Themen 3
M HTML Seite die Daten in JavaApplet dynamisch verarbeiten Java Basics - Anfänger-Themen 2
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
H Variablenname dynamisch festlegen Java Basics - Anfänger-Themen 3
J Tabelle mit mehreren Zeilen dynamisch aufbauen Java Basics - Anfänger-Themen 2
K Bild dynamisch erstellen Java Basics - Anfänger-Themen 2
M Klasse dynamisch erzeugen! Java Basics - Anfänger-Themen 4
M [SOLVED]JComboBoxen dynamisch erstellen und abfragen Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben