Ich versuche entfernen Elemente einer Liste, wenn sie in einer Textdatei enthalten sind.Das Entfernen von Elementen aus einer Liste bewirkt, dass die for-Schleife nicht erhöht wird?
Zum Beispiel: Wenn der String "Person123
". In der Textdatei ist dann der String "Person123"
sollte aus der Liste entfernt werden
Unten ist mein aktueller Versuch aber ich ein Problem bin immer mit dem durchlaufen.‚MyList‘ , der int
Wert scheint nicht erhöht, die nur eine der Stringelemente verursacht entfernt werden, anstatt zwei
Wie kann ich dieses Problem beheben
Aktuellen Code:.?
for (Map.Entry<Person, List<String>> entry : mapOfPeopleAndDescriptions.entrySet()) {
List<String> textFileValues= readFromTextFile(filePath);
List<String> myList = entry.getValue();
for (int i = 0; i < myList.size(); i++) {
if(textFileValues.contains(myList.get(i)){
LOGGER.info("In loop- int: {}",i);
myList.remove(myList.get(i));
}
LOGGER.info("Out of loop- int: {}",i);
}
}
Output Ich erhalte:
In loop- int: 0
Out of loop- int: 0
Out of loop- int: 1
Out of loop- int: 0
Out of loop- int: 1
Out of loop- int: 0
Iterieren Sie die Liste rückwärts. Verwenden Sie auch 'myList.remove (i)'. Oder benutze einen 'Iterator'. –
@AndyTurner was meinst du? – java123999
'für (int i = myList.size(); i> = 0; i--) {' –