1. 程式人生 > >Atitit 實現java的linq 以及與stream api的比較

Atitit 實現java的linq 以及與stream api的比較

Linq來源於sql,而我們知道在資料查詢領域,sql是標準化的一個dsl。。

1.1. Linq stream api的關係,以及主要優缺點

Stream更加的通用化,linq比較專一化,專注於資料查詢的dsl。。Linq就是特殊化的stream。。

此外,linq更加的dsl ,更加方便簡潔。。

stream相對底層一些,更加靈活,但是稍微囉嗦些。。

1.2. Linq stream api的適用場景

大部分場合linq更加好用,畢竟sql是標準化的資料查詢dsl api。。

不過少部分場合,簡單查詢一個list的情況下,可能linq顯得有點囉嗦,stream會更加簡潔些。。

此外,在非資料查詢領域,使用

stream會更加好些。。

1.3. Java中的linq

Java jdk預設沒有實現linq api。只能第三方類庫實現了。

雖然java有個linq4j類庫,但是貌似編譯不過,不好使用,只好自己實現linq api即可。。

Java實現linq,主要利用static import

比如實現對一個listgroup聚合查詢。。比如根據月份統計充值總金額

List result = Select(“month,sum(rechg) as total”).from(list).groupby(“month”).orderby(“total,desc”);

作者:: 綽號:老哇的爪子

 (全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿爾 拉帕努伊 )

漢字名:艾提拉(艾龍)  EMAIL:[email protected]

轉載請註明來源: http://blog.csdn.net/attilax

Atiend