Question Quel est l'équivalent Java pour LINQ? [fermé]


Quel est l'équivalent Java pour LINQ?


740
2017-08-01 18:53


origine


Réponses:


Il n'y a rien de tel que LINQ pour Java.

...

modifier

Maintenant, avec Java 8, nous sommes présentés à la API de flux, c'est un genre de chose qui ressemble à des collections, mais ce n'est pas tout à fait la même chose que Linq.

Si c'est un ORM que vous cherchez comme Entity Framework, alors vous pouvez essayer Hiberner

:-)


767
2017-08-01 18:55



Il y a une solution alternative, Coollection.

Coolection n'a pas prétendu être le nouveau lambda, mais nous sommes entourés de vieux projets Java hérités où cette lib aidera. Il est vraiment simple à utiliser et à étendre, ne couvrant que les actions d'itération les plus utilisées sur les collections, comme ça:

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 sont maintenant disponibles dans Java 8 sous la forme de JSR-335 - Expressions Lambda pour le langage de programmation JavaTM

METTRE À JOUR: JDK8 est maintenant disponible qui contient le projet lambda. Cela vaut la peine de saisir une copie de Java 8 en action actuellement toujours MEAP.

Avoir une lecture de Brian Goetz articles relatifs à lambdas pour une compréhension décente de la façon dont lambdas sont implémentés dans JDK8 tout en acquérant une compréhension des flux, des itérations internes, des court-circuits et des références constructeurs .. Consultez également les JSR ci-dessus pour obtenir d'autres exemples.

J'ai écrit un blog sur certains des avantages de l'utilisation de lambdas dans JDK8 appelé Le pouvoir de la flèche, aussi NetBeans 8 a un grand soutien pour la conversion de constructions à JDK8 dont j'ai aussi blogué à propos de Migration vers JDK 8 avec NetBeans.


140
2017-07-22 12:31



Vous pouvez sélectionner les éléments d'une collection (et bien plus encore) de manière plus lisible en utilisant la bibliothèque lambdaj

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

Il a quelques avantages par rapport à la librairie Quaere car il n'utilise pas de chaîne magique, il est complètement de type sécurisé et à mon avis il offre un DSL plus lisible.


118
2018-01-24 12:05



Vous ne trouverez pas un équivalent de LINQ sauf si vous utilisez le javacc pour créer votre propre équivalent.

Jusqu'à ce jour où quelqu'un trouve un moyen viable de le faire, il existe de bonnes alternatives, telles que


96
2017-12-09 23:13



LINQ aux objets - JAVA 8 a ajouté l'API Stream qui ajoute la prise en charge des opérations de style fonctionnel sur les flux de valeurs:

Package java.util.stream

Java 8 expliqué: Application de Lambdas aux collections Java

LINQ à SQL / NHibernate / etc. (interrogation de base de données)- Une option serait d'utiliser JINQ qui utilise également les nouvelles fonctionnalités de JAVA 8 et a été publié le 26 février 2014 sur Github: https://github.com/my2iu/Jinq

Jinq fournit aux développeurs un moyen facile et naturel d'écrire une base de données   requêtes en Java. Vous pouvez traiter les données de base de données comme des objets Java normaux   stocké dans des collections. Vous pouvez itérer sur eux et les filtrer en utilisant   commandes Java normales, et tout votre code sera automatiquement   traduit en requêtes de base de données optimisées. Enfin, style LINQ   les requêtes sont disponibles pour Java!

Site du projet JINQ: http://www.jinq.org/


47
2018-03-26 07:41



Il y a un projet appelé quaere.

C'est un framework Java qui ajoute la possibilité d'interroger des collections.

Note: Selon l'auteur, le projet n'est plus maintenu.


29
2017-08-01 18:55