Atitit 实现java的linq 以及与stream api的比较
?
?
?
Atitit 實(shí)現(xiàn)java的linq 以及與stream api的比較
?
?
1.1. Linq 和stream api的關(guān)系,以及主要優(yōu)缺點(diǎn)1
1.2. Linq 與stream api的適用場(chǎng)景1
1.3. Java中的linq1
?
?
Linq來(lái)源于sql,而我們知道在數(shù)據(jù)查詢(xún)領(lǐng)域,sql是標(biāo)準(zhǔn)化的一個(gè)dsl。。
1.1.?Linq 和stream api的關(guān)系,以及主要優(yōu)缺點(diǎn)
Stream更加的通用化,linq比較專(zhuān)一化,專(zhuān)注于數(shù)據(jù)查詢(xún)的dsl。。Linq就是特殊化的stream。。
?
此外,linq更加的dsl ,更加方便簡(jiǎn)潔。。
stream相對(duì)底層一些,更加靈活,但是稍微啰嗦些。。
?
1.2.?Linq 與stream api的適用場(chǎng)景
大部分場(chǎng)合linq更加好用,畢竟sql是標(biāo)準(zhǔn)化的數(shù)據(jù)查詢(xún)dsl api。。
不過(guò)少部分場(chǎng)合,簡(jiǎn)單查詢(xún)一個(gè)list的情況下,可能linq顯得有點(diǎn)啰嗦,stream會(huì)更加簡(jiǎn)潔些。。
?
此外,在非數(shù)據(jù)查詢(xún)領(lǐng)域,使用stream會(huì)更加好些。。
1.3.?Java中的linq
Java 的jdk默認(rèn)沒(méi)有實(shí)現(xiàn)linq api。只能第三方類(lèi)庫(kù)實(shí)現(xiàn)了。
雖然java有個(gè)linq4j類(lèi)庫(kù),但是貌似編譯不過(guò),不好使用,只好自己實(shí)現(xiàn)linq api即可。。
Java實(shí)現(xiàn)linq,主要利用static import
?
比如實(shí)現(xiàn)對(duì)一個(gè)list做group聚合查詢(xún)。。比如根據(jù)月份統(tǒng)計(jì)充值總金額
?
List result = Select(“month,sum(rechg) as total”).from(list).groupby(“month”).orderby(“total,desc”);
?
?
?
作者::?綽號(hào):老哇的爪子?(?全名::Attilax?Akbar?Al?Rapanui?阿提拉克斯?阿克巴?阿爾?拉帕努伊?)?
漢字名:艾提拉(艾龍),???EMAIL:1466519819@qq.com
轉(zhuǎn)載請(qǐng)注明來(lái)源:?http://www.cnblogs.com/attilax/
Atiend
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/attilax/p/6014620.html
總結(jié)
以上是生活随笔為你收集整理的Atitit 实现java的linq 以及与stream api的比较的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SPSS数据记录的选择(Select C
- 下一篇: JavaWeb中的简单分页