Frage Was ist das Java-Äquivalent für LINQ? [geschlossen]


Was ist Java für LINQ?


740
2017-08-01 18:53


Ursprung


Antworten:


Es gibt nichts wie LINQ für Java.

...

Bearbeiten

Jetzt mit Java 8 werden wir in die eingeführt Stream-APIDas ist eine ähnliche Sache, die sich mit Sammlungen beschäftigt, aber es ist nicht ganz dasselbe wie Linq.

Wenn es sich um ein ORM handelt, nach dem Sie wie Entity Framework suchen, können Sie es versuchen Überwintern

:-)


767
2017-08-01 18:55



Es gibt eine alternative Lösung, Coollektion.

CoClection hat nicht den Anspruch, das neue Lambda zu sein, aber wir sind umgeben von alten Java-Projekten, in denen diese Bibliothek helfen wird. Es ist wirklich einfach zu verwenden und zu erweitern und deckt nur die am häufigsten verwendeten Aktionen der Iteration über Sammlungen ab:

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 sind jetzt verfügbar innerhalb von Java 8 in Form von JSR-335 - Lambda-Ausdrücke für die Programmiersprache JavaTM

AKTUALISIEREN: JDK8 wurde jetzt veröffentlicht welches Projekt Lambda enthält. Es lohnt sich, eine Kopie von Java 8 in Aktion momentan noch MEAP.

Lies etwas davon Brian Goetz Artikel zu Lambdas für ein gutes Verständnis davon, wie Lambdas innerhalb von JDK8 implementiert werden, während man gleichzeitig ein Verständnis für Streams, interne Iteration, Kurzschlüsse und Konstruktorreferenzen entwickelt. Siehe auch die obigen JSRs, um weitere Beispiele zu erhalten.

Ich habe einen Blog über einige der Vorteile der Verwendung von Lambdas in JDK8 geschrieben Die Macht des Pfeils, ebenfalls NetBeans 8 hat große Unterstützung beim Konvertieren von Konstrukten zu JDK8, über die ich auch schon gebloggt habe Migration zu JDK 8 mit NetBeans.


140
2017-07-22 12:31



Sie können die Elemente in einer Sammlung (und vieles mehr) über die lambdaj-Bibliothek lesbarer auswählen

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

Es hat einige Vorteile gegenüber der Quaere-Bibliothek, da es keine magische Zeichenfolge verwendet, es ist absolut typsicher und bietet meiner Meinung nach eine besser lesbare DSL.


118
2018-01-24 12:05



Sie werden kein Äquivalent von LINQ finden, es sei denn Sie verwenden das javacc um dein eigenes Äquivalent zu erschaffen.

Bis zu dem Tag, an dem jemand einen gangbaren Weg findet, gibt es einige gute Alternativen, wie z


96
2017-12-09 23:13



LINQ zu Objekten - JAVA 8 hat die Stream-API hinzugefügt, die Unterstützung für funktionale Operationen in Datenströmen bietet:

Paket java.util.stream

Java 8 erklärt: Anwenden von Lambdas auf Java-Sammlungen

LINQ zu SQL / NHibernate / etc. (Datenbankabfrage)- Eine Option wäre die Verwendung von JINQ, das auch die neuen JAVA 8-Funktionen nutzt und am 26. Februar 2014 auf Github veröffentlicht wurde: https://github.com/my2iu/Jinq

Jinq bietet Entwicklern eine einfache und natürliche Möglichkeit, eine Datenbank zu schreiben   Abfragen in Java. Sie können Datenbankdaten wie normale Java-Objekte behandeln   in Sammlungen gespeichert. Sie können über sie iterieren und sie mit filtern   normale Java-Befehle, und Ihr gesamter Code wird automatisch   in optimierte Datenbankabfragen übersetzt. Schließlich, LINQ-Stil   Abfragen sind für Java verfügbar!

JINQ-Projektseite: http://www.jinq.org/


47
2018-03-26 07:41



Es gibt ein Projekt namens quaere.

Es ist ein Java-Framework, das die Möglichkeit bietet, Sammlungen abzufragen.

Hinweis: Laut Autor wird das Projekt nicht mehr gepflegt.


29
2017-08-01 18:55



Es gibt viele LINQ-Entsprechungen für Java, siehe Hier für einen Vergleich.

Verwenden Sie für ein typsicheres Quaere / LINQ-Stil-Framework Querydsl. Querydsl unterstützt JPA / Hibernate, JDO, SQL und Java Collections.

Ich bin der Betreuer von Querydsl, also ist diese Antwort voreingenommen.


16
2018-01-11 19:01



Sie können scala verwenden, es ist ähnlich in der Syntax und es ist wahrscheinlich mächtiger als linq.


12
2017-10-18 20:46



Wie 2014 kann ich endlich sagen, dass LINQ endlich in Java 8 ist. Also keine Notwendigkeit, eine Alternative zu LINQ zu finden.


10
2018-06-01 11:57