Wie löscht man die ersten paar Elemente aus einem array von strings?
Ich habe eine Methode in einem string-array und findet den Durchschnitt von jedem paar Elemente, je nach Länge. Ich möchte die Methode zum löschen der ersten paar Elemente in das array je nach dem Wert von offset.
public static double[] getMovingAverage(String[] priceList, int length, int offset){
double[] newPriceList = convert(priceList);
int listLength = newPriceList.length;
int counter = 0;
double listsum;
double[] movingAverage = new double[listLength];
try{
for (int aa = 0; aa < listLength-1; aa++){
listsum = 0;
for (int bb = 0; bb < length; bb++){
counter = aa+bb;
listsum = listsum + newPriceList[counter];
}
movingAverage[aa] = listsum / length;
}
if (offset>0){
//remove first #offset# elements
}
}catch(Exception e){
System.out.println(e);
}
return movingAverage;
}
*Hinweis: convert(); wandelt String [], double[]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Arrays fester Länge in Java. (Sie können nicht ändern die Länge eines array.)
Sie können jedoch erstellen ein neues array mit den ersten
offset
Elemente entfernt ganz einfach:Ausgabe:
Vom Java 6 API
anstelle von löschen von Elementen, warum nicht erstellen Sie einfach eine neue Liste der kleineren Größe als output, und verwenden Sie immer die index-offset der index in es?
Vielleicht eines der Arrays.copyOfRange () - Methoden tun würde?
http://download.oracle.com/javase/6/docs/api/java/util/Arrays.html#copyOfRange(boolean%5B%5D, int, int)
Können Sie Sie nicht explizit löschen aus einem array, aber Sie können ein anderes Daten-Struktur, wie eine ArrayList, sammeln die Ergebnisse. In Ihrem Fall, obwohl, können Sie nur wollen, um den code zu ändern, um die Größe des Arrays korrekt, dh.
und
Um zu verhindern, dass das kopieren des arrays, könntest du eine Klasse Sammlungen wie LinkedList, die O(1) Operationen entfernen aus dem Kopf.
http://download.oracle.com/javase/6/docs/api/java/util/LinkedList.html