LINQ untuk Java akan menyenangkan, tetapi masalahnya adalah integrasi bahasa.
Java tidak memiliki sesuatu yang sesingkat ekspresi lambda, dan mereka adalah salah satu landasan dari LINQ. Saya kira mereka bisa melapisi dukungan ekspresi kueri di atas Java normal tanpa ekspresi lambda, dengan membuat ekspansi membuat kelas dalam anonim - tetapi itu akan sangat mengerikan. Anda juga memerlukan pohon ekspresi jika Anda ingin melakukan sesuatu seperti LINQ ke SQL.
Pengecualian yang diperiksa mungkin menghalangi, tapi kita harus melihatnya. Setara dengan IQueryable perlu memiliki semacam pengecualian umum yang diperiksa - atau mungkin bisa generik baik dalam tipe elemen dan tipe pengecualian...
Bagaimanapun, ini semua hanyalah masalah - mengingat masalah yang dihadapi komunitas Java dengan penutupan, saya pikir akan bodoh untuk mengharapkan sesuatu seperti LINQ di Jawa itu sendiri lebih awal dari sekitar tahun 2012. Tentu saja, itu tidak berarti itu tidak mungkin dalam bahasa "seperti Java". Groovy sudah memiliki aspek berguna tertentu, misalnya.
Untuk sisi perpustakaan, Hibernate sudah menyediakan versi "tidak terintegrasi" dari banyak fitur LINQ ke SQL. Untuk LINQ to Objects, Anda harus melihat Google Java Collections API - banyak hal yang sama (memfilter, memproyeksikan, dll). Tanpa lambda tentu saja lebih banyak digunakan - tetapi masih sangat, sangat berguna. (Saya menggunakan kode Google Collections sepanjang waktu di tempat kerja, dan saya tidak ingin kembali ke koleksi Java "vanilla".)