Removes, from an iterable, every element that satisfies the provided predicate. Removals may or may not happen immediately as each element is tested against the predicate. The behavior of this method is not specified if predicate is dependent on removeFrom. @param removeFrom th
(Iterable<T> removeFrom, Predicate<? super T> predicate)
| 187 | */ |
| 188 | |
| 189 | @CanIgnoreReturnValue |
| 190 | public static <T> boolean removeIf(Iterable<T> removeFrom, Predicate<? super T> predicate) { |
| 191 | if (removeFrom instanceof RandomAccess && removeFrom instanceof List) { |
| 192 | return removeIfFromRandomAccessList((List<T>) removeFrom, checkNotNull(predicate)); |
| 193 | } |
| 194 | return Iterators.removeIf(removeFrom.iterator(), predicate); |
| 195 | } |
| 196 | |
| 197 | private static <T> boolean removeIfFromRandomAccessList(List<T> list, Predicate<? super T> predicate) { |
| 198 | // Note: Not all random access lists support set(). Additionally, it's possible |
no test coverage detected