私はC#プログラミングの経験がありますが、私はJavaプロジェクトで何かを変更する必要がありますので、私の質問は、Javaの何かLINQ C#私はJavaでリストを照会する必要があります。Linq like for Java
答えて
LINQ for Javaのようなものはありません。ごめんなさい。グーグルで私はthis projectを見つけましたが、C#で得られる言語や構文砂糖に同じ統合を期待することはできません。
これは、実行する内容によって異なります。 C#のラムダ表記の概念は、匿名のクラスを使用することではるかに冗長に模倣することができます。だからFunction<T, bool>
を取るWhere
メソッドを作成することができます。Function<T1, TReturn>
は1つのメソッド(たとえばExecute
)を持つクラスです。私はグアバがこのようなものを持っていることを理解する。
アイデアはこのような何かを言う、その後に次のようになります。
Iterable<Ball> redBalls = Enumerable.Where(balls,
new Function<Ball, bool>() {
public bool Execute(Ball b) { return b.getColor() == Color.Red; }
});
をしかし、すべてこの作業のために、あなたにもLINQのSANSそれを行っているかもしれません:残念ながら、それははるかに
List<Ball> redBalls = new ArrayList<Ball>();
for(Ball ball in balls) {
if(ball.getColor() == Color.Red) {redBalls.add(ball);}
}
ですラムダ式、推論された型、プロパティ、および拡張メソッド(C#のやり方)を組み合わせるときにできることから泣いてください。
var redBalls = balls.Where(b => b.Color == Color.Red);
このようなコードは、Javaは、バージョン7のために予定されていたラムダ式を実装したときにのみ可能になりますが、「次のバージョン」に押し戻されてしまいました。また、LINQ to SQLやLINQ to Entitiesのようなものは、ロードマップにもないと思うExpressionツリーがある場合にのみ可能です。
編集
一部の人々は、しかし、この動作をシミュレートするために、複雑なライブラリが出ています。多くの場合、クエリの一部を実行するために "マジック文字列"を使用し、コンパイラチェック値を提供できません。 LambdaJは、コンパイラを作るために、プロキシオブジェクトを使用して、あなたがこのような何かを探して、あなたはコンパイルのチェックとgetterメソッドとsetterメソッドを呼び出すことを可能にする、あなたのオブジェクトのいずれかで作業していると思います:
List<Person> redBalls = filter(having(
on(Ball.class).getColor(), equalTo(Color.RED)),
balls);
これらは非常に賢いです、この時点でLINQのシンプルさには本当に一致するものはありません。
- 1. LinqのSQL LIKE
- 2. Facebook Like Button for Sitecore
- 3. Facebook Like Button For Email
- 4. Gluster/Lustre like for Windows?
- 5. Django Like Admin Project for C#MVC
- 6. Matac-like Idle Animation for Emacs
- 7. LINQ to SQL for Oracle.ODP
- 8. ORM for Linqなし
- 9. Linq for Cのポインタ#
- 10. 配列要素のLIKEクエリのLINQ
- 11. ComboBoxとLinq to Sql for Winforms
- 12. JavaアノテーションのMaven-properties-filtering-like?
- 13. foreachのforループとforループfor java
- 14. OpenMicroBlogging-library for Java?
- 15. Java API for Growl
- 16. QStackedWidget for Java Swing
- 17. Javaクライアントfor Mosquitto
- 18. Flattr API for Java?
- 19. OnPaint()for Java?
- 20. Java API for XML
- 21. ASTビルダーfor Java?
- 22. javaライブラリfor zip64
- 23. Java Logger for Arduino
- 24. Logger for Javaライブラリ
- 25. RPC Framework for Java
- 26. オフィスコミュニケータAPI for java
- 27. Protobuf RuntimeTypeModel for Java
- 28. Java for C++プログラマ?
- 29. XSLT Framework for Java
- 30. linkedIn for java
実際には同じではありません... "LINQ for Java tool"の質問は市場調査の多くです。 – CrazyDart
LAMBDAJライブラリを使用します。 – Zasz
これを確認してください:github.com/nicholas22/jpropel-light、実際の例:new String [] {"james"、 "john"、 "john"、 "eddie"} .where(startsWith( "j")) toList()。distinct(); –