Servus Community,
Ich weiß dass man während einer foreach oder forschleife keine Elemente aus einer Liste löscht sondern mit einem Iterator arbeitet. Ich möchte es dennoch anders probieren und es klappt einfach nicht. Die Aufgabenstellung ich habe 2 Listen und der Rückgabewert soll 1 Liste sein in der die Werte aus der ersten Liste vorkommen sollen und gleichzeitig die Werte aus der 2ten Liste nicht darin vorkommen dürfen. Hier das richtige mit einem Iterator:
Nun ich wollte es mit einer kopierten Liste probieren und aus der löschen, aber leider klappt es nicht. Wo liegt mein Fehler?
mfg
El Hadji
Ich weiß dass man während einer foreach oder forschleife keine Elemente aus einer Liste löscht sondern mit einem Iterator arbeitet. Ich möchte es dennoch anders probieren und es klappt einfach nicht. Die Aufgabenstellung ich habe 2 Listen und der Rückgabewert soll 1 Liste sein in der die Werte aus der ersten Liste vorkommen sollen und gleichzeitig die Werte aus der 2ten Liste nicht darin vorkommen dürfen. Hier das richtige mit einem Iterator:
Code:
public ArrayList<Webseite> findeMitOhne(String posWort, String negWort)
{
ArrayList<Webseite> pos = super.finde(posWort);
ArrayList<Webseite> neg = super.finde(negWort);
Iterator it = pos.iterator();
while(it.hasNext())
{
Webseite p = (Webseite) it.next();
for(Webseite n:neg)
{
if(p.equals(n))
{
it.remove();
}
}
}
return pos;
}
Nun ich wollte es mit einer kopierten Liste probieren und aus der löschen, aber leider klappt es nicht. Wo liegt mein Fehler?
Code:
List<Webseite> mit = super.finde(posWort);
List<Webseite> kopie = super.finde(negWort);
List<Webseite> ohne = super.finde(negWort);
for(int i = 0; i < ohne.size(); i++)
{
for (int j = 0; j < mit.size(); j++)
{
if(ohne.get(i).equals(mit.get(j)))
{
kopie.remove(i);
j = i+1;
break;
}
}
}
return kopie;
}
mfg
El Hadji