title: Java Replacement for certain LINQ methods
body: <p>I have some C# <code>List&lt;MyCustomType&lt;T&gt;&gt; where T : ICloneable</code> on which the following extension methods are applied:</p>
  
  <ul>
  <li><code>Where(x =&gt; x.Start &gt; Start &amp;&amp; x.End &lt; End).ToList()</code></li>
  <li><code>OrderBy(x =&gt; x.Start).ToList()</code></li>
  <li><code>Select(x =&gt; x.Clone()).ToList()</code></li>
  <li><code>FirstOrDefault(x =&gt; x.Start == Start)</code> (Default means <code>null</code>)</li>
  <li><code>WhereMin(x =&gt; x.Start).ToList()</code> / <code>WhereMax(x =&gt; x.Start).ToList()</code></li>
  </ul>
  
  <p>I have to convert the code into Java; everything else should be straightforward, but I am trying not to replace all these LINQ calls with simple loops.</p>
  
  <p>Is there a simpler way to replace any, if not all, of these functions?</p>
  
  <p>And which list should I use, is an <code>ArrayList</code> okay or is there anything else I should prefer?</p>