Hi,
ich habe ein Problem mit meiner ArrayList.
Ich erstelle eine ArrayList „al“ mit 5 Zufallszahlen zwischen 1 und 6.
Der Benutzer darf sich nun aussuchen wie viele Elemente er entfernen möchte und dann werden von ihm die Indizes dieser Elemente angegeben und in eine neue ArrayList „al2“ geschrieben. Soweit so gut.
Allerdings möchte ich die von dem Benutzer ausgewählten Indizes aus der Liste „al“ löschen.
Mache ich das mit remove() direkt in der Schleife stimmen die Indizes des Benutzers natürlich nicht mehr überein da die anderen Elemente ja nach „link rücken“.
Also habe ich mir überlegt die Werte einfach mit „0“ zu überschreiben und anschließend zu überprüfen ob die ArrayList „al“ die Werte 0 enthält und wenn ja diese zu löschen.
Allerdings bekomme ich genau dies nicht hin.
Meine Überlegung soweit:
Allerdings glaub ich das der Aufruf al.contains(0) mir nicht alle Nullen wieder gibt sondern nur das Erste Element?
Und al.remove(indexOf(0)) ist syntaktisch falsch.
Hat da wer andere Ansätze für mich, wie ich das Löschen hinbekomme?
Zum Überblick mal mein bisheriger Code.
ich habe ein Problem mit meiner ArrayList.
Ich erstelle eine ArrayList „al“ mit 5 Zufallszahlen zwischen 1 und 6.
Der Benutzer darf sich nun aussuchen wie viele Elemente er entfernen möchte und dann werden von ihm die Indizes dieser Elemente angegeben und in eine neue ArrayList „al2“ geschrieben. Soweit so gut.
Allerdings möchte ich die von dem Benutzer ausgewählten Indizes aus der Liste „al“ löschen.
Mache ich das mit remove() direkt in der Schleife stimmen die Indizes des Benutzers natürlich nicht mehr überein da die anderen Elemente ja nach „link rücken“.
Also habe ich mir überlegt die Werte einfach mit „0“ zu überschreiben und anschließend zu überprüfen ob die ArrayList „al“ die Werte 0 enthält und wenn ja diese zu löschen.
Allerdings bekomme ich genau dies nicht hin.
Meine Überlegung soweit:
Java:
if (al.contains(0))
{
al.remove(indexOf(0));
}
Allerdings glaub ich das der Aufruf al.contains(0) mir nicht alle Nullen wieder gibt sondern nur das Erste Element?
Und al.remove(indexOf(0)) ist syntaktisch falsch.
Hat da wer andere Ansätze für mich, wie ich das Löschen hinbekomme?
Zum Überblick mal mein bisheriger Code.
Java:
import java.util.*;
class liste
{
public static void main (String[] args)
{
Scanner sc = new Scanner (System.in);
ArrayList al = new ArrayList();
for (int i = 0; i<5; i++)
{
int k = (int)(Math.random()*6)+1;
al.add(i, k);
}
System.out.println(al);
int index = sc.nextInt();
int index2;
ArrayList al2 = new ArrayList();
for (int i = 0; i<index; i++)
{
index2 = sc.nextInt();
al2.add(i, al.get(index2));
al.set(index2, 0);
}
if (al.contains(0))
{
al.remove(indexOf(0));
}
System.out.println(al2);
System.out.println(al);
}
}