Ответ 1
l.removeAll(Collections.singleton("first"));
Я использую java.util.ArrayList
, я хочу удалить все вхождения определенного элемента.
List<String> l = new ArrayList<String>();
l.add("first");
l.add("first");
l.add("second");
l.remove("first");
Он удаляет только первое вхождение. Но я хочу, чтобы все вхождения были удалены после l.remove("first");
Я ожидаю, что список будет оставлен только со значением "second". Я нашел по googling, что это может быть достигнуто путем создания нового списка и вызова list.removeAll(newList)
. Но возможно ли удалить все вхождения без создания нового списка или есть ли какой-либо API для его достижения?
l.removeAll(Collections.singleton("first"));
Другой способ использования Java 8:
l.removeIf("first"::equals);
while(l.remove("first")) { }
Это удаляет все элементы "первым" из списка.
Вы можете использовать метод removeAll()
.
list.removeAll(Arrays.asList("someDuplicateString"));
Так как в вашем примере вы используете Strings, я думаю, это должно было сделать трюк.
for(int i = 0; i < list.size();i++){
if(list.get(i).equals(someStringNameOrValue)){
list.remove(i--);
}
}
Похоже, я неправильно понял ваш вопрос. Я обновил свой ответ. Я прав? вы хотите удалить все вхождения "first"?