Mit Google collections libray:
List result1 = Lists.newArrayList(Collections2.filter(originalList,filterPredicate));
List result2 = Lists.newLinkedList(Collections2.filter(originalList,filterPredicate));
Während diese Sie eine richtige Liste geben, sie den Speicher-Overhead und Iteration Zeitaufwand sofort anfallen. Wenn Sie lieber, dass („lazy“ -Bewertung) verschieben möchten, können Sie eine Iterable oder Iterator für seriellen Zugriff verwenden:
Iterable result3 = Iterables.filter(originalList,filterPredicate)); // Pangea's solution
Iterator result4 = Iterators.filter(originalList.iterator(),filterPredicate));
(ich die Art der Parametrierung als Übung dem Leser überlassen.)
I korrigiert und formatiert den (unterbrochenen) Link.Javadoc-Methodenverknüpfungen enthalten Zeichen, die maskiert werden müssen. Google Collections ist jetzt ein Teil von Guava. –