Qu'est-ce que Java équivalent de LINQ?
Réponses
Trop de publicités?J'ai développé une solution alternative, Coollection. Est simple et axé sur les actions les plus courantes de l'itération sur les Collections.
L'utilisation de ce genre:
à partir de(personnes).où("nom", eq("Arthur")).first(); à partir de(personnes).où("age", lessThan(20)).tous les(); à partir de(personnes).où("nom", et non pas(contient("Francine"))).tous les();
Les Lambdas sont maintenant disponibles dans Java 8 sous la forme de la JSR-335 - les Expressions Lambda pour le Langage de Programmation Java
Mise à JOUR: JDK8 a été publié , qui contient le projet lambda. Il vaut la peine de prendre une copie de Java 8 en Action à l'heure actuelle encore MEAP.
Avoir une lecture de Brian Goetz articles relatifs à des lambdas pour une vie décente compréhension de la façon dont elles sont mises en œuvre dans JDK8 tout en acquérant une compréhension des flux internes itération, de court-circuit et constructeur de références.. découvrez Également les JSR est ci-dessus pour obtenir d'autres exemples.
J'ai écrit un blog sur quelques-uns des avantages de l'utilisation des expressions lambda en JDK8 appelé La Puissance de la Flèche, aussi NetBeans 8 a un grand soutien pour la conversion des constructions du JDK8 que j'ai également écrit un billet à propos de la Migration vers le JDK 8 avec NetBeans.
Vous pouvez sélectionner les éléments dans une collection (et beaucoup plus) dans un moyen plus lisible à l'aide de la bibliothèque lambdaj
http://code.google.com/p/lambdaj/
Il a certains avantages par rapport à la Quaere de la bibliothèque, car il n'a pas à utiliser de la magie de la chaîne, c'est totalement sécurisé et à mon avis, il offre une plus lisible DSL.
Vous ne trouverez pas l'équivalent de LINQ, sauf si vous utilisez la javacc pour créer votre propre équivalent.
Jusqu'au jour où quelqu'un trouve un moyen viable de le faire, il ya quelques bonnes alternatives, telles que
- jOOQ: http://www.jooq.org
- QueryDSL: http://www.querydsl.com
- JaQu: http://www.h2database.com/html/jaqu.html
- Quaere: http://quaere.codehaus.org/
- Linq4j: https://github.com/julianhyde/linq4j
- La JSR-341: http://java.net/projects/el-spec/pages/CollectionOperations