LINQ für Java wäre schön, aber das Problem ist die Sprachintegration.
Java hat nichts so Prägnantes wie Lambda-Ausdrücke, und sie sind eines der Fundamente von LINQ. Ich nehme an, sie könnten die Unterstützung für Abfrageausdrücke auf normales Java ohne Lambda-Ausdrücke legen, indem Sie die Erweiterung dazu bringen, anonyme innere Klassen zu erstellen - aber es wäre ziemlich abscheulich. Sie würden auch Ausdrucksbäume brauchen, wenn Sie etwas wie LINQ to SQL machen wollten.
Geprüfte Ausnahmen möglicherweise im Weg stehen, aber wir müssten sehen. Das Äquivalent von IQueryable müsste eine Art allgemein geprüfte Ausnahme haben - oder es könnte möglicherweise sowohl im Elementtyp als auch im Ausnahmetyp generisch sein ...
Wie auch immer, das ist alles Zukunftsmusik - angesichts der Probleme, die die Java-Community mit Closures hat, denke ich, dass es töricht wäre, so etwas wie LINQ in Java selbst vor etwa 2012 zu erwarten. Natürlich ist das nicht zu sagen es wäre in einer "Java-ähnlichen" Sprache nicht möglich. Groovy hat zum Beispiel bereits einige nützliche Aspekte.
Für die Bibliotheksseite bietet Hibernate bereits eine „nicht integrierte“ Version vieler Funktionen von LINQ to SQL. Für LINQ to Objects sollten Sie sich die Google Java Collections API ansehen - es ist sehr ähnlich (Filtern, Projizieren usw.). Ohne Lambdas ist es natürlich viel fummeliger zu bedienen - aber es ist immer noch sehr, sehr praktisch. (Ich verwende bei der Arbeit ständig den Code von Google Collections und möchte nur ungern zu den „Vanilla“-Java-Sammlungen zurückkehren.)