title: Combine Java 8 predicates with disjunction
body: <p>Suppose I have an array or a list of status, and want to filter a list for elements whose status matches any of the given. So I go on creating a predicate. I started by initializing it with the comparison to the first, then adding more conditions with <code>or</code>, which resulted in the minimal predicate but was a lot of code:</p>
  
  <pre><code>Predicate&lt;Rec&gt; predicate = null;
  for (SendStatus status : statuss) {
      Predicate&lt;Rec&gt; innerPred = nr -&gt; nr.getStatus() == status;
      if (predicate == null)
          predicate = innerPred;
      else
          predicate = predicate.or(innerpred);
  }
  </code></pre>
  
  <p>More elegantly, I came up with the following code:</p>
  
  <pre><code>Predicate&lt;Rec&gt; predicate = nr -&gt; false;
  for (SendStatus status : statuss) {
      predicate = predicate.or(nr -&gt; nr.getStatus() == status);
  }
  </code></pre>
  
  <p>This looks nicer, but has a useless predicate at the beginning of the chain. Apache Collections had an <code>AnyPredicate</code> that could be composed of any number of predicates, and I’m basically looking for a replacement.</p>
  
  <p>Is this superfluous predicate acceptable? Is there an even more elegant way to write this?</p>