code: @Nonnull
    @ReturnsMutableCopy
    public static <ELEMENTTYPE> CommonsArrayList <ELEMENTTYPE> createFiltered (@Nullable final Iterable <? extends ELEMENTTYPE> aValues,
                                                                               @Nullable final Predicate <? super ELEMENTTYPE> aFilter)
    {
      final CommonsArrayList <ELEMENTTYPE> ret = new CommonsArrayList <> ();
      ret.addAll (aValues, aFilter);
      return ret;
    }
docs: Create a new array list that contains a subset of the provided
  iterable.<br>
  Note: this method is a static factory method because the compiler sometimes
  cannot deduce between {@link Predicate} and {@link Function} and the
  mapping case occurs more often.
  
  @param aValues
  The iterable from which the elements are copied from. May be
  <code>null</code>.
  @param aFilter
  The filter to be applied to check if the element should be added or
  not.
  @return The created array list. Never <code>null</code>.
  @see #addAll(Iterable, Predicate)