С Версия 8 из Java, Он ввел новый метод, доступные для этих типов Коллекция. Этот метод является removeIf(), который принимает параметр a Предикат (Предикат) Это определяет состояние Это должно удалено в элементы в коллекции.
В результате, Возвращает Логическое значение Это возвращает ПРАВДА где находится удалила элемент, o ЗНАЧЕНИЕ FALSE в противном случае.
Предположим, что у нас есть коллекция типа стек (Стек) из цепи (Строка) и что мы хотим удалить Эти цепи они встречаются Некоторые условия:
1 2 3 4 5 6 7 8 | Collection<String> misPalabras = new Stack<>(); misPalabras.add( "Prueba" ); misPalabras.add( "de" ); misPalabras.add( "uso" ); misPalabras.add( "nuevo" ); misPalabras.add( "metodo" ); misPalabras.removeIf ( s -> s.contains("ue") ); |
Этот код создаст Коллекция типов цепей стека и удалить те элементы, чьи цепочки содержит подстрока ‘ЕС‘. полезно, удаленные элементы ‘Тест‘ и ‘Новые функции‘.
ES важные подчеркнуть, что не все коллекции Поддержка ликвидации элементов. Если вы не поддерживают, Это даст исключение Тип UnsupportedOperationException чтобы удалить элемент в. Один из этих коллекций, Например, ArrayList:
1 2 | Collection<String> misPalabras = Arrays.asList( "Prueba", "de", "uso", "nuevo", "metodo" ); misPalabras.removeIf( s -> s.contains("ue") ); |
В этой связи, будет запущена исключение Поскольку метод Arrays.asList() Возвращает объект ArrayList типа java.utils.Arrays.ArrayList, что только чтение и фиксированный размер, Кроме этого обычно используется Тип java.util.ArrayList, которая сама по себе модифицируемый.