205. Writing a custom collector that takes/skips a given number of elements
In Problem 202, we wrote a handful of custom collectors grouped in the MyCollectors class. Now, let’s continue our journey, and let’s try to add two more custom collectors here to take and/or keep a given number of elements from the current stream.
Let’s assume the following model and data:
public class Car { private final String brand; private final String fuel; private final int horsepower; ... } List<Car> cars = List.of( new Car("Chevrolet", "diesel", 350), ... // 10 more new Car("Lexus", "diesel", 300) ); The Stream API provides an intermediate operation named limit(long n), which can be used to truncate the stream to n elements. So, if this is exactly what we want, then we can use it out of the box. For instance, we can limit the resulting stream to the first five cars, as follows:
List<Car> first5CarsLimit...