Java Arraylist entfernen Sie mehrere element-index
Hier ist mein code:
for (int i = 0; i < myarraylist.size(); i++) {
for (int j = 0; j < stopwords.size(); j++) {
if (stopwords.get(j).equals(myarraylist.get(i))) {
myarraylist.remove(i);
id.remove(i);
i--; //to look at the same index again!
}
}
}
Ich habe ein problem.. nach dem element entfernt, werden alle index immer verändert, wird die Schleife oben so chaotisch.
Zur Veranschaulichung:
Ich habe 54 Daten, aber die Schleife oben zu chaotisch nach dem element entfernt.. nur so 50 Daten überprüft.
Gibt es einen anderen Weg oder fix meinen code zu entfernen Sie mehrere element-index??
element-index ist mir sehr wichtig, zu entfernen eine andere arraylist, die den gleichen index.
Bitte nehmen Sie einen Blick auf dieser Beitrag: stackoverflow.com/q/223918/1679863
Verwenden
Verwenden
Iterator
zum entfernen von Elementen während dem looping.
InformationsquelleAutor Lita | 2015-04-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine Sache, die Sie benötigen, im Auge zu behalten ist, dass, wenn Sie
ArrayLists
, dass Sie gemeint sind, um vielseitig zu sein, so mehr, alsArrays
. Kürzen kann man ein array durch entfernen eines gesamten index, um einen index hinzuzufügen, um es, und tun Vollkommenheit mitArrayLists
.Dies ist ein häufiges problem bei Menschen, die nicht erkennen, oder sich daran zu erinnern, dass, wenn Sie einen Wert entfernen, der
ArrayList
Indizes (oder wie auch immer der korrekte plural ist) neu zu justieren und dieArrayList
verkürzt.Beim Versuch, entfernen von Elementen aus einem
ArrayList
Sie sollten immer am Ende derArrayList
.Diese sollte Sie mit der Funktion, die Sie suchen. Werfen Sie einen Blick auf die ArrayList-API für andere Methoden, die Ihnen helfen können.
warum? sollte
x
werdenx = arrayList.size() - 1
. Ich wollte eigentlich nicht denken, zum überprüfen, dass ich nur zeigen wollte, dass der OP die Praxis zum entfernen von Elementen aus einem array-Liste.Sie sind richtig, Sie sind aus. Im Allgemeinen ist es weit besser, verwenden Iterator entfernen, anstatt sich auf der Rückseite, um index-basierte Schleife.
vielen Dank für die spotting-mate, verändert es. Noch nie gehört, iterator, denke, es ist an der Zeit, diese zu prüfen.
InformationsquelleAutor Ungeheuer
Verwenden
Iterator.remove()
zum entfernen von Elementen während der Iteration.Oder die Verwendung von Google Guava ist filter gibt eine gefilterte Ansicht und lässt das ursprüngliche Liste bleibt unverändert.
InformationsquelleAutor Steve Kuo
aussieht, wie Sie möchten, so entfernen Sie eine Sammlung von anderen.., die Sie verwenden sollten
java.util.Collection#removeAll-Methode statt
InformationsquelleAutor Stranger in the Q
Nicht sicher, warum Sie wollen, dies zu tun, die durch den index, du kannst aber Folgendes probieren (ungetestet):
InformationsquelleAutor bonnyz
während der Iteration Liste und entfernen Sie das Objekt, verwenden Sie den iterator.
InformationsquelleAutor Panther
Mit ListIterator
InformationsquelleAutor Yash