### Question:
PrimitiveIntCollections { public static PrimitiveIntIterator filter(PrimitiveIntIterator source, final IntPredicate filter) { return new PrimitiveIntFilteringIterator(source) { @Override public boolean test(int item) { return filter.test(item); } }; } private  PrimitiveIntCollections(); static PrimitiveIntIterator iterator(final int... items); static PrimitiveIntIterator concat(Iterator<PrimitiveIntIterator> iterators); static PrimitiveIntIterator filter(PrimitiveIntIterator source, final IntPredicate filter); static long[] asLongArray(PrimitiveIntCollection values); static PrimitiveIntIterator emptyIterator(); static PrimitiveIntIterator toPrimitiveIterator(final Iterator<Integer> iterator); static Iterator<T> map(final IntFunction<T> mapFunction, final PrimitiveIntIterator source); static void consume(PrimitiveIntIterator source, IntConsumer consumer); static boolean contains(int[] values, int candidate); static List<Integer> toList(PrimitiveIntIterator iterator); static Set<Integer> toSet(PrimitiveIntIterator iterator); static Set<T> mapToSet(PrimitiveIntIterator iterator, IntFunction<T> map); static int[] deduplicate(int[] values);  }### Answer:
@Test void filter() { PrimitiveIntIterator items = PrimitiveIntCollections.iterator(1, 2, 3); PrimitiveIntIterator filtered = PrimitiveIntCollections.filter(items, item -> item != 2); assertItems(filtered, 1, 3); }