public static <T> T search(List<T> list, T item) {

        if (list.size()>1) {

            Object o = list;
            int index =  Collections.binarySearch((List<? extends Comparable<? super T>>) o, item);
            return list.get(index);
        } else {
            return null;
        }
    }
public static < T > T search ( List < T > list , T item ) { if ( list . size ( ) > 1 ) { Object o = list ; int index = Collections . binarySearch ( ( List < ? extends Comparable < ? super T > > ) o , item ) ; return list . get ( index ) ; } else { return null ; } }
Does a binary search

NOTE THIS WILL NOT SORT THE LIST ASCENDING.

@param list items you want to search.
@param item the item you are searching for.
@param <T> type of item
@return item found or null