In Java 8 remove selected item from Collection? It can be done in at least two ways both of which we are going to implement here. Let’s code!
Pre Java 8 version
Before Java 8 you could remove selected items from Collection in the following way:
List<Integer> numbers = inclusiveRange(1, 10); System.out.println("Numbers: " + numbers); for (Iterator<Integer> it = numbers.iterator(); it.hasNext(); ) { if (it.next() % 2 == 0) { it.remove(); } } numbers.removeIf(i -> i % 2 == 0); System.out.println("Numbers: " + numbers);
It’s longish and nothing fancy, but it works:
Numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Numbers: [1, 3, 5, 7, 9]
Java 8 removeIf version
In Java 8 removeIf(Predicate) default method has been added to the java.util.Collection interface. It can be used in much more succinct way:
List<Integer> numbers = inclusiveRange(1, 10); System.out.println("Numbers: " + numbers); numbers.removeIf(i -> i % 2 == 0); System.out.println("Numbers: " + numbers);
The removeIf(Predicate) takes any predicate (a method that returns true/false), removes all matching elements, and returns true if anything has been removed.
It works in the same way:
Numbers: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] Numbers: [1, 3, 5, 7, 9]
References:
- How to generate range of numbers
- Check out other cool Java Tutorials!