title: How to return Observable.empty() if observable.filter().first() returns nothing?
body: <p>I have a function in RxJava which tries to find an Thing based on a condition, and if succeeds it transforms and returns it as an <code>Observable</code>. I want to return <code>Observable.empty()</code> if it is not able to find anything thus there is no first. 
  I'm not sure about this, but I think if filter filters out every element in an <code>Observable</code> the result will be <code>Observable.empty()</code> anyway (without the <code>firstElement()</code>).</p>
  
  <pre><code>void Observable&lt;Thing&gt; transformFirst(Observable&lt;Thing&gt; things,Predicate&lt;Thing&gt; condition){
    return things
      .filter(condition)
      .firstElement()
      .map(firstThing -&gt;{...do sg...})
  }
  </code></pre>
  
  <p><strong>EDIT:</strong></p>
  
  <p>My problem is that <code>firstElement()</code> returns a <code>Maybe&lt;Thing&gt;</code> and I do not know how to turn that into an <code>Observable.empty()</code> when the <code>filter(condition)</code> filters out everything (<code>condition</code> evaulates to false for every <code>thing</code>)</p>