Hallo,
habe hier eine Performance frage.
Ich will bestimmte Daten aus einem zwei-dim. Array löschen.
Momentan mache ich es so:
Dabei ist die indexInArray Methode auch relativ simpel:
Diese Lösung funktioniert, aber ich denke es dauert bei großen Daten zu lange.
Habe jetzt diesen unfertigen (nicht funktionsfähigen) Ansatz:
Das müsste klappen, Problem ist aber dass ich ein 2 dim. habe. Was kann ich da tun?
Denke auch nur, dass es schneller ist, da ich mir viele Schleifen spare. Kann natürlich aber sein, dass die Konvertierungen viel teurer sind.
Was meint ihr dazu, bzw. wie könnte ich das rausfinden?
GRuß, Stinner
habe hier eine Performance frage.
Ich will bestimmte Daten aus einem zwei-dim. Array löschen.
Momentan mache ich es so:
Java:
public void rowDelete(int[] rows, String [][] data) {
String[][] tmp;
int k = 0;
if (data != null && data[0] != null) {
tmp = new String[data.length - rows.length][data[0].length];
for (int i = 0; i < data.length; i++) {
if (!indexInArray(i, rows)) {
for (int j = 0; j < data[0].length; j++) {
tmp[k][j] = data[i][j];
}
k++;
}
}
data = tmp;
}
}
Dabei ist die indexInArray Methode auch relativ simpel:
Java:
private boolean indexInArray(int i, int[] rows) {
for (int j = 0; j < rows.length; j++) {
if (i == rows[j])
return true;
}
return false;
}
Diese Lösung funktioniert, aber ich denke es dauert bei großen Daten zu lange.
Habe jetzt diesen unfertigen (nicht funktionsfähigen) Ansatz:
Java:
public void rowDelete(int[] rows, String [][]data) {
//Hier ist das Problem, dass data 2 dim. hat
List list = Arrays.asList(data)
for(int i; i<rows.length; i++){
list.remove(i);
}
data = list.toArray();
}
Das müsste klappen, Problem ist aber dass ich ein 2 dim. habe. Was kann ich da tun?
Denke auch nur, dass es schneller ist, da ich mir viele Schleifen spare. Kann natürlich aber sein, dass die Konvertierungen viel teurer sind.
Was meint ihr dazu, bzw. wie könnte ich das rausfinden?
GRuß, Stinner