873 Stimmen

Was ist die Java-Entsprechung für LINQ?

Was ist das Java-Äquivalent für LINQ?

842voto

AgileJon Punkte 52146

Es gibt nichts Vergleichbares zu LINQ für Java.

...

Modifier

Mit Java 8 werden wir nun mit der Stream-API Das ist eine ähnliche Sache, wenn es um Sammlungen geht, aber es ist nicht ganz dasselbe wie Linq.

Wenn Sie ein ORM suchen, wie Entity Framework, dann können Sie versuchen Winterschlaf

-)

156voto

19WAS85 Punkte 2793

Es gibt eine alternative Lösung, Coollection .

Coolection hat nicht so getan, als wäre es das neue Lambda, aber wir sind von alten Java-Projekten umgeben, bei denen diese Lib helfen wird. Sie ist wirklich einfach zu benutzen und zu erweitern und deckt nur die am häufigsten benutzten Aktionen der Iteration über Sammlungen ab, wie das:

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

148voto

Brett Ryan Punkte 24930

Lambdas sind jetzt verfügbar innerhalb von Java 8 in Form von JSR-335 - Lambda-Ausdrücke für die Programmiersprache JavaTM

UPDATE : JDK8 ist jetzt freigegeben worden das Projekt Lambda enthält. Es lohnt sich, eine Kopie von Java 8 in Aktion derzeit noch MEAP.

Lesen Sie den Artikel Brian Goetz Artikel über Lambdas, um zu verstehen, wie Lambdas in JDK8 implementiert sind, und um ein Verständnis für Streams, interne Iteration, Kurzschlüsse und Konstruktorreferenzen zu erlangen. Sehen Sie sich auch die obigen JSRs an, um weitere Beispiele zu erhalten.

Ich habe einen Blog über einige der Vorteile der Verwendung von Lambdas in JDK8 geschrieben. Die Macht des Pfeils auch NetBeans 8 bietet großartige Unterstützung für die Konvertierung von Konstrukten in JDK8, über die ich auch schon gebloggt habe Umstellung auf JDK 8 mit NetBeans .

119voto

Mario Fusco Punkte 12920

Mit der Bibliothek lambdaj können Sie die Elemente einer Sammlung (und vieles mehr) in einer besser lesbaren Form auswählen

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

Sie hat einige Vorteile gegenüber der Quaere-Bibliothek, da sie keine magische Zeichenkette verwendet, vollständig typsicher ist und meiner Meinung nach eine besser lesbare DSL bietet.

108voto

Lukas Eder Punkte 194234

Sie werden keine Entsprechung von LINQ finden, es sei denn, Sie verwenden die javacc um Ihr eigenes Äquivalent zu erstellen.

Bis zu dem Tag, an dem jemand eine praktikable Lösung dafür findet, gibt es einige gute Alternativen, z. B.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X