溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在java中使用數(shù)據(jù)流

發(fā)布時(shí)間:2021-04-21 17:00:15 來(lái)源:億速云 閱讀:92 作者:Leah 欄目:編程語(yǔ)言

本篇文章為大家展示了怎么在java中使用數(shù)據(jù)流,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

Java的特點(diǎn)有哪些

Java的特點(diǎn)有哪些 1.Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡(jiǎn)單性、面向?qū)ο?、分布式、安全性、平臺(tái)獨(dú)立與可移植性、動(dòng)態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

1.reduce

對(duì)于更細(xì)粒度的控制,有另一個(gè)流 API 函數(shù),名為reduce,可用于對(duì) Number 流中的值求和:

Integer sum4AllHarder = listOfNums
    .parallelStream()                           // 多線程
    .map(Number::getValue)                      // 每個(gè) Number 的值
    .reduce(0, (sofar, next) -> sofar + next);  // 求和

2.collect

collect是非常有用的終止操作,將流中的元素存放在不同類型的結(jié)果中。Java8通過(guò)內(nèi)置的Collectors類支持多種內(nèi)置的收集器。所以對(duì)于大部分常見操作,并不需要自己實(shí)現(xiàn)收集器。

List<Person> filtered =
   persons
.stream()
.filter(p -> p.name.startsWith("P"))
.collect(Collectors.toList());
 
System.out.println(filtered); // [Peter, Pamela]

3.flatMap

flatMap將流中的每個(gè)元素,轉(zhuǎn)換為其它對(duì)象的流。所以每個(gè)對(duì)象會(huì)被轉(zhuǎn)換為零個(gè)、一個(gè)或多個(gè)其它對(duì)象,以流的形式返回。這些流的內(nèi)容之后會(huì)放進(jìn)flatMap所返回的流中。

List<Foo> foos = new ArrayList<>();
 
// create foos
IntStream
.range(1, 4)
.forEach(i -> foos.add(new Foo("Foo" + i)));
 
// create bars
foos.forEach(f ->
IntStream
.range(1, 4)
.forEach(i -> f.bars.add(new Bar("Bar" + i + " <- " + f.name))));

上述內(nèi)容就是怎么在java中使用數(shù)據(jù)流,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI