Elemente aus Liste entfernen

Andi_CH

Top Contributor
Was man so alles an Beispielen findet ....

Das Codeschnipsel kommt von hier

Java:
int[] indices = list.getSelectedIndices();
for (int index : indices) {
	list.getContents().remove(index);
}

funktioniert nicht, wohl weil beim zweiten Element das man entfernen will die ganze Liste schon verschoben ist (Wobei mich allerdings überrascht, denn ich entferne ja ein Objekt und nicht das Objekt an der Stelle x)

Java:
int[] indices = list.getSelectedIndices();
for (int index : indices) {
	list.getContents().remove(index);
}
Geht, wenn die Element in indices in der richtigen Reihenfolge drin sind, aber wie macht man das richtig, wenn das nicht garantiert ist? (z.B. Handeingabe)
 
Die Reihenfolge ist ja laut der API aufsteigend (wenn es JList ist)
Also kannst du auch:
Java:
int[] indices = list.getSelectedIndices();
for (int i=indices.length-1;i>=0;i--) {
    list.getContents().remove(indices[i]);
}
machen (ungetestet, aber müsste klappen)

Wobei mich allerdings überrascht, denn ich entferne ja ein Objekt und nicht das Objekt an der Stelle x
Wieso? Du entfernst eben Elemente an Stelle x.
 
Zuletzt bearbeitet:
Ansonsten kannst du einfach vorher
Code:
Arrays.sort
machen, wenn du dir nicht sicher bist.
 

Zurück
Oben