Hab ne kurze Java Frage. Wenn ich eine ArrayList habe, die mit den Integern 1-9 befüllt ist und ich will z.B. die 3 löschen. Wie gehe ich dann vor?
Mit a.remove(3) lösche ich ja nicht die 3 sondern die Zahl mit dem Index 3. Ich weiß, dass man ein Array auch nach Objecten durchsuchen und diese dann direkt löschen kann, ohne eine Schleife anzuwenden. Hat jemand ne Idee?
Beiträge gesamt: 36710 | Durchschnitt: 5 Postings pro Tag Registrierung: Jan. 2004 | Dabei seit: 7755 Tagen | Erstellt: 15:20 am 31. Okt. 2013
Intel Core i9 3600 MHz @ 5200 MHz 78°C mit 1.552 Volt
Da gibt es ein paar Möglichkeiten, deshalb ist das Topic wohl sinnvoll. Die primitivste wäre die Schleifenform ala
Code
for(i=0;i
Oder du versuchst die Objektposition zu ermitteln (wenn du sie nicht ohnehin schon kennst) und entfernst es dann mit remove. Such mal nach LinkedList, dann bekommst du einige Lösungsbeispiele. Oder poste mal den genauen Code, dann können wir daraus etwas basteln.
Hardware News lesen * Unterhalten * Smarthome und Gadgets Übertakten, Modding und Testberichte * Fanartikel kaufen
Beiträge gesamt: 171630 | Durchschnitt: 20 Postings pro Tag Registrierung: April 2001 | Dabei seit: 8738 Tagen | Erstellt: 17:08 am 31. Okt. 2013
Das man eine Schleife nutzen kann, weiß ich. Ich habe aber gelesen, dass man der Methode .remove() ein Objekt mit geben kann und dieses wird dann in der ArrayList gesucht und entfernt. Blöd ist nur, wenn das Objekt ein Integer ist.
In Java ist auch eine Insel kann man folgendes nachlesen:
boolean remove( Object o ) Entfernt das erste Objekt in der Liste, das equals()-gleich mit o ist. Liefert true, wenn ein Element entfernt wurde. Eine optionale Operation.
Beiträge gesamt: 36710 | Durchschnitt: 5 Postings pro Tag Registrierung: Jan. 2004 | Dabei seit: 7755 Tagen | Erstellt: 21:30 am 31. Okt. 2013
Intel Core i9 3600 MHz @ 5200 MHz 78°C mit 1.552 Volt
Hast du es denn in Anführungsstriche gesetzt ? Ich brauchte das bislang noch nicht, aber das scheint bei remove wirklich einfach zu klappen. Schau mal hierHardware News lesen * Unterhalten * Smarthome und Gadgets Übertakten, Modding und Testberichte * Fanartikel kaufen
Beiträge gesamt: 171630 | Durchschnitt: 20 Postings pro Tag Registrierung: April 2001 | Dabei seit: 8738 Tagen | Erstellt: 19:34 am 1. Nov. 2013
wakko0816 offline
OC God 20 Jahre dabei !
Intel Core i5 3500 MHz @ 4200 MHz 55°C mit 1.18 Volt
Listenelemente in einer Schleife löschen ist immer kritisch, einfach weil man dabei die Länge der Liste verändert. Deswegen macht man das mit Iteratoren:
Code
Iterator<Integer> iter = l.iterator(); while (iter.hasNext()) { if (iter.next().intValue() == 5) { iter.remove(); } }
Copyright 1999 - 2024 by www.ocinside.de - All rights reserved.
Unser PC Forum verwendet Cookies für einen optimalen Service. Durch die Nutzung dieser Webseite erklären Sie sich damit einverstanden, dass wir personenbezogene Daten wie z.B. die IP-Adresse speichern und wir zusammen mit Drittanbietern Cookies verwenden, um personalisierte Anzeigen zur interessengerechten Werbung und weitere externe Inhalte anzuzeigen. Einverstanden? Ja / Nein ImpressumDatenschutzEinstellungen