Using Java 8 parallel streams
Your code is not thread-safe. Each of the threads will, in parallel, be accessing both the best, and the bestQuality variables.

Your Lambda is, in essence, modifying external data from the stream, and this is an anti-pattern for streams. It has side-effects.

You should change your code to use the collect mechanism. There are a few ways to do it, but, you should look at this example for guidance: Reduction

Some Notes about my following suggestion:


I converted the method to a static method, and created an inner accumulator class.
you should possibly refine this answer to suit your needs more in the class structure.


Putting these observations together, I would suggest something like:

public class Maxinator {

    @FunctionalInterface
    public interface QualityFunction&lt;V&gt; {
        double computeQuality(V value);
    }

    private Maxinator() {
//        no public instances
    }

    private static final class AccumulateResult&lt;T&gt; {
        T bestItem = null;
        double bestScore = Double.MIN_VALUE;

        public T getBestItem() {
            return bestItem;
        }

        public void accept(QualityFunction&lt;T&gt; function, T item) {
            double score = function.computeQuality(item);
            if (score &gt; bestScore) {
                bestScore = score;
                bestItem = item;
            }
        }

        public AccumulateResult&lt;T&gt; combine(AccumulateResult&lt;T&gt; r) {
            if (r.bestScore &gt; bestScore) {
                bestScore = r.bestScore;
                bestItem = r.bestItem;
            }
            return this;
        }

    }

    public static &lt;T&gt; T getBest(final QualityFunction&lt;T&gt; qualityFunction, final List&lt;T&gt; population) {
        return population.parallelStream().collect(Collector.of(
                    AccumulateResult&lt;T&gt;::new,
                    (a,t) -&gt; a.accept(qualityFunction, t),
                    (a, b) -&gt; a.combine(b))
               ).getBestItem();
    }
}