code: @Override
    @SuppressWarnings("unchecked")
    public <E> E search(final Collection<E> collection) {
      Assert.isInstanceOf(collection, List.class, "The collection {0} must be an instance of java.util.List!",
        ClassUtils.getClassName(collection));
  
      return doSearch((List<E>) collection);
    }
docs: Searches the Collection of elements in order to find the element or elements matching the criteria defined
  by the Matcher.  The search operation expects the collection of elements to an instance of java.util.List,
  an ordered collection of elements that are sorted according the natural ordering of the element's Comparable
  Class type.
  
  @param <E> the Class type of elements in the Collection.
  @param collection the Collection of elements to search.
  @return the element in the Collection matching the search criteria defined by the Matcher.
  @throws IllegalArgumentException if the collection of elements is not an instance of java.util.List.
  @see #getMatcher()
  @see #search(Object[])
  @see #doSearch(java.util.List)
  @see java.util.List