An extension to Java which gives LINQ-to-objects capabilities is SBQL4J.
It offers:
- Type-safety in compile time
- Powerful query engine with greater capabilities than LINQ
- Compatibility with current JVMs (it uses preprocessing to translate queries to pure Java code)
- Nice performance (no reflection is used at runtime)
- Clear, precise semantics without needless, obscure syntactic sugar.