LINQ pour Java serait bien, mais le problème est l'intégration du langage.
Java n'a rien d'aussi concis que les expressions lambda, et elles sont l'un des fondements de LINQ. Je suppose qu'ils pourraient superposez la prise en charge des expressions de requête au-dessus de Java normal sans expressions lambda, en faisant en sorte que l'expansion crée des classes internes anonymes - mais ce serait assez hideux. Vous auriez également besoin d'arborescences d'expressions si vous vouliez faire quelque chose comme LINQ to SQL.
Les exceptions cochées pourraient gêner, mais il faudrait voir. L'équivalent de IQueryable devrait avoir une sorte d'exception générale vérifiée - ou éventuellement il pourrait être générique à la fois dans le type d'élément et le type d'exception...
Quoi qu'il en soit, tout cela est une tarte dans le ciel - étant donné les problèmes que la communauté Java rencontre avec les fermetures, je pense qu'il serait insensé de s'attendre à quelque chose comme LINQ en Java lui-même avant 2012 environ. Bien sûr, cela ne veut pas dire ce ne serait pas possible dans un langage "Java-like". Groovy a déjà certains aspects utiles, par exemple.
Côté bibliothèque, Hibernate fournit déjà une version "non intégrée" d'un grand nombre des fonctionnalités de LINQ to SQL. Pour LINQ to Objects, vous devriez consulter l'API Google Java Collections - c'est un peu le même genre de choses (filtrage, projection, etc.). Sans lambdas, c'est beaucoup plus compliqué à utiliser, bien sûr - mais c'est quand même vraiment, vraiment pratique. (J'utilise tout le temps le code Google Collections au travail et je détesterais revenir aux collections Java "vanille".)