Hallo zusammen!
In meinem Projekt muss ich sehr große Tabellen erzeugen und vielfach durchsuchen. Ich würde gern wissen wie man das am effizientesten anstellt?
Ein typisches Beispiel wären Punkte die im Raum verteilt sind. Jeder Punkt hat eine Nummer / ID und jeweils X,Y,Z Koordinaten. Jetzt würde ich z.B. gerne wissen welche Koordinaten der Punkt mit der ID 123456 hat. Dazu habe ich bisher 2D Arrays genutzt und so etwas gemacht:
Ich habe eine Klasse "Punkt" erzeugt die als Eigenschaften u.a. X,Y,Z Koordinaten hat. Ich erzeuge ein Objekt von der Klasse, durchsuche das Array nach der gewünschten ID, wenn ich diese gefunden habe weise ich die gefundenen Werte meinem Objekt zu und arbeite mit dem Objekt dann weiter.
Ich erzeuge teilweise sehr viele Objekte und durchsuche das Array durchaus auch einige 10.000 oder einige 100.000 Male. Es ist also wichtig, dass dies möglichst effizient passiert.
Jetzt zu meinen Fragen ...
Ich möchte gerne auf ArrayList umsteigen. Gibt es hier performance einbußen beim durchsuchen? Oder wäre etwas gänzlich anderes sinnvoller?
Ich habe zwei Initialisierungmöglichkeiten gesehen.
und
Wo ist hier der Unterschied?
Ist die Sache mit dem "Punkt" Objekt erzeugen kritisch?
Sooo viele Fragen!
Ich freue mich auf eure Ratschläge!
Liebe Grüße
In meinem Projekt muss ich sehr große Tabellen erzeugen und vielfach durchsuchen. Ich würde gern wissen wie man das am effizientesten anstellt?
Ein typisches Beispiel wären Punkte die im Raum verteilt sind. Jeder Punkt hat eine Nummer / ID und jeweils X,Y,Z Koordinaten. Jetzt würde ich z.B. gerne wissen welche Koordinaten der Punkt mit der ID 123456 hat. Dazu habe ich bisher 2D Arrays genutzt und so etwas gemacht:
Java:
for (int i=0 ; i<punktArray.length ; i++) {
if (punktArray[i][0] == punktID) {
punkt.set_x = punktArray[i][1];
punkt.set_x = punktArray[i][2];
punkt.set_x = punktArray[i][3];
return;
}
}
Ich habe eine Klasse "Punkt" erzeugt die als Eigenschaften u.a. X,Y,Z Koordinaten hat. Ich erzeuge ein Objekt von der Klasse, durchsuche das Array nach der gewünschten ID, wenn ich diese gefunden habe weise ich die gefundenen Werte meinem Objekt zu und arbeite mit dem Objekt dann weiter.
Ich erzeuge teilweise sehr viele Objekte und durchsuche das Array durchaus auch einige 10.000 oder einige 100.000 Male. Es ist also wichtig, dass dies möglichst effizient passiert.
Jetzt zu meinen Fragen ...
Ich möchte gerne auf ArrayList umsteigen. Gibt es hier performance einbußen beim durchsuchen? Oder wäre etwas gänzlich anderes sinnvoller?
Ich habe zwei Initialisierungmöglichkeiten gesehen.
Code:
ArrayList[][] table = new ArrayList[10][10];
table[0][0].add(); // add object to that ArrayList
Code:
List<List<String>> listOfLists = new ArrayList<List<String>>(size);
Ist die Sache mit dem "Punkt" Objekt erzeugen kritisch?
Sooo viele Fragen!
Ich freue mich auf eure Ratschläge!
Liebe Grüße