Pregunta ¿Cuál es el equivalente de Java para LINQ? [cerrado]


¿Qué es Java equivalente para LINQ?


740
2017-08-01 18:53


origen


Respuestas:


No hay nada como LINQ para Java.

...

Editar

Ahora con Java 8 nos presentan a la Stream API, este es un tipo simular de cosas que trata de colecciones, pero no es lo mismo que Linq.

Si se trata de un ORM que está buscando como Entity Framework, entonces puede intentarlo Hibernar

:-)


767
2017-08-01 18:55



Hay una solución alternativa, Coollection.

Coolection no pretende ser el nuevo lambda, sin embargo, estamos rodeados de antiguos proyectos heredados de Java, donde este lib ayudará. Es muy simple de usar y extender, cubriendo solo las acciones más utilizadas de iteración sobre colecciones, así:

from(people).where("name", eq("Arthur")).first();
from(people).where("age", lessThan(20)).all();
from(people).where("name", not(contains("Francine"))).all();

151
2017-07-29 20:27



Lambdas ahora están disponibles dentro de Java 8 en forma de JSR-335 - Expresiones Lambda para el lenguaje de programación JavaTM

ACTUALIZAR: JDK8 ahora ha sido lanzado que contiene el proyecto lambda. Vale la pena tomar una copia de Java 8 en acción actualmente todavía MEAP.

Leer de Brian Goetz artículos relacionados con lambdas para una comprensión decente de cómo se implementan las lambdas dentro de JDK8 y al mismo tiempo obtener una comprensión de los flujos, iteraciones internas, cortocircuitos y referencias de constructores. También consulte los JSR anteriores para obtener más ejemplos.

He escrito un blog sobre algunas de las ventajas del uso de lambdas en JDK8 llamado El poder de la flecha, además NetBeans 8 tiene un gran soporte para convertir constructos a JDK8 sobre los que también he blogueado Migrando a JDK 8 con NetBeans.


140
2017-07-22 12:31



Puede seleccionar los elementos en una colección (y mucho más) de una manera más legible utilizando la biblioteca lambdaj

https://code.google.com/archive/p/lambdaj/

Tiene algunas ventajas sobre la biblioteca de Quaere porque no usa ninguna cadena mágica, es completamente segura y, en mi opinión, ofrece una DSL más legible.


118
2018-01-24 12:05



No encontrará un equivalente de LINQ a menos que use el javacc para crear su propio equivalente

Hasta ese día en que alguien encuentre una forma viable de hacerlo, hay algunas buenas alternativas, como


96
2017-12-09 23:13



LINQ a los objetos - JAVA 8 ha agregado Stream API que agrega soporte para operaciones de estilo funcional en flujos de valores:

Paquete java.util.stream

Explicación de Java 8: aplicación de Lambdas a las colecciones de Java

LINQ a SQL / NHibernate / etc. (consulta de la base de datos)- Una opción sería usar JINQ que también usa las nuevas características de JAVA 8 y fue lanzado el 26 de febrero de 2014 en Github: https://github.com/my2iu/Jinq

Jinq proporciona a los desarrolladores una forma fácil y natural de escribir una base de datos   consultas en Java. Puede tratar datos de bases de datos como objetos normales de Java   almacenado en colecciones. Puede iterar sobre ellos y filtrarlos usando   comandos normales de Java, y todo su código será automáticamente   traducido a consultas de bases de datos optimizadas. Finalmente, estilo LINQ   ¡las consultas están disponibles para Java!

Sitio del proyecto JINQ: http://www.jinq.org/


47
2018-03-26 07:41



Hay un proyecto llamado quaere.

Es un marco de Java que agrega la capacidad de consultar colecciones.

Nota: Según el autor, el proyecto ya no se mantiene.


29
2017-08-01 18:55



Hay muchos equivalentes LINQ para Java, ver aquí para una comparación.

Para un marco de estilo Quaere / LINQ seguro, considere usar Querydsl. Querydsl admite colecciones JPA / Hibernate, JDO, SQL y Java.

Soy el mantenedor de Querydsl, por lo que esta respuesta es parcial.


16
2018-01-11 19:01



puedes usar Scala, es similar en sintaxis y en realidad es probablemente más poderoso que linq.


12
2017-10-18 20:46