大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java基礎(chǔ)學(xué)習(xí):Java8的新特性

Java基礎(chǔ)學(xué)習(xí):Java8的新特性

更新時(shí)間:2020-03-31 09:01:14 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2124次


    現(xiàn)在很多業(yè)務(wù)方還一直停留在1.7版本,遲遲不升級(jí),為了兼容性,不敢在代碼中使用Java8的一些新特性,比如Stream之類的,雖然不能用,但還是要學(xué)一下。


Java基礎(chǔ)學(xué)習(xí):Java8的新特性



  Stream是什么


  Stream是Java8中添加的一個(gè)新特性,它與java.io包里的InputStream和OutputStream是完全不同的概念。它借助于Lambda表達(dá)式,可以讓你以一種聲明的方式處理數(shù)據(jù),可以極大提高Java程序員的生產(chǎn)力,讓程序員寫出高效率、干凈、簡(jiǎn)潔的代碼。


  StreamDemo


  直接上Demo,感受一下


Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  Stream 如何工作


  當(dāng)使用一個(gè)流的時(shí)候,通常包括三個(gè)基本步驟:


  獲取一個(gè)數(shù)據(jù)源(source)


  數(shù)據(jù)轉(zhuǎn)換


  執(zhí)行操作獲取想要的結(jié)果


  每次轉(zhuǎn)換原有 Stream 對(duì)象不改變,返回一個(gè)新的 Stream 對(duì)象(可以有多次轉(zhuǎn)換),這就允許對(duì)其操作可以像鏈條一樣排列,變成一個(gè)管道,如下圖所示。


Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  在Stream中,分為兩種操作


  中間操作


  結(jié)束操作


  中間操作返回Stream,終端操作返回void或者非Stream結(jié)果,在demo中, filter、 map、 sorted都算是中間操作,而 forEach是一個(gè)結(jié)束操作。


  Stream 如何生成


  創(chuàng)建Stream的方式很多,最常見(jiàn)的是從Collections,List 和 Set中生成

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  在對(duì)象myList上調(diào)用方法 stream() 返回一個(gè)常規(guī)對(duì)象Stream。

  也可以從一堆已知對(duì)象中生成。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  當(dāng)然了,還有其它方式:


  Collection.stream()


  Collection.parallelStream()


  BufferedReader.lines()


  Files.walk()


  BitSet.stream()


  Random.ints()


  JarFile.stream()


  ....


  常規(guī)操作


  forEach


  forEach方法接收一個(gè) Lambda 表達(dá)式,用來(lái)迭代流中的每個(gè)數(shù)據(jù)

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  map


  map 用于映射每個(gè)元素到對(duì)應(yīng)的結(jié)果

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  filter


  filter 用于通過(guò)設(shè)置的條件過(guò)濾出元素

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  limit


  limit 用于用于獲取指定數(shù)量的流

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  sorted


  sorted 用于對(duì)流進(jìn)行排序

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  Match


  有三個(gè) match 方法,從語(yǔ)義上說(shuō):


  allMatch:Stream 中全部元素符合傳入的 predicate,返回 true


  anyMatch:Stream 中只要有一個(gè)元素符合傳入的 predicate,返回 true


  noneMatch:Stream 中沒(méi)有一個(gè)元素符合傳入的 predicate,返回 true


  它們都不是要遍歷全部元素才能返回結(jié)果。例如 allMatch 只要一個(gè)元素不滿足條件,就 skip 剩下的所有元素,返回 false。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  reduce


  reduce 方法根據(jù)指定的函數(shù)將元素序列累積到某個(gè)值。此方法有兩個(gè)參數(shù):


  起始值


  累加器函數(shù)。


  如果有一個(gè)List,希望得到所有這些元素和一些初始值的總和。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  collect


  Collectors類中提供了功能豐富的工具方法


  toList


  toSet


  toCollection


  toMap


  ...


  而這些方法,都需要通過(guò) collect 方法傳入。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  collect 可以把Stream數(shù)據(jù)流轉(zhuǎn)化為Collection對(duì)象,


  騷技巧


  for循環(huán)


  除了常規(guī)的對(duì)象Stream,還有一些有特殊類型的Stream,用于處理基本數(shù)據(jù)類型int、long和double,它是IntStream、LongStream和DoubleStream。


  比如可以使用IntStream.range()來(lái)代替常規(guī)的for循環(huán)。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  隨機(jī)數(shù)


  Random的ints方法可以返回一個(gè)隨機(jī)數(shù)據(jù)流,比如返回1到100的10個(gè)隨機(jī)數(shù)。

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  大小寫轉(zhuǎn)化

  

Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  Stream 特點(diǎn)


  總之,Stream 的特性可以歸納為:


  無(wú)存儲(chǔ)


  Stream并不是一種數(shù)據(jù)結(jié)構(gòu),它只是某種數(shù)據(jù)源的一個(gè)視圖


  安全性


  對(duì)Stream的任何修改都不會(huì)修改背后的數(shù)據(jù)源,比如對(duì)stream執(zhí)行過(guò)濾操作并不會(huì)刪除被過(guò)濾的元素,而是會(huì)產(chǎn)生一個(gè)不包含被過(guò)濾元素的新Stream。


  惰式執(zhí)行


  Stream上的操作并不會(huì)立即執(zhí)行,只有等到用戶真正需要結(jié)果的時(shí)候才會(huì)執(zhí)行。


  一次性


  Stream只能被“消費(fèi)”一次,一旦遍歷過(guò)就會(huì)失效,就像容器的迭代器那樣,想要再次遍歷必須重新生成。


  lambda


  所有 Stream 的操作必須以 lambda 表達(dá)式為參數(shù)


Java基礎(chǔ)學(xué)習(xí):Java8的新特性


  以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“Java基礎(chǔ)學(xué)習(xí):Java8的新特性”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 操操干 | 亚洲一区二区欧美 | 日本高清不卡视频 | 无套嗨操| 黄色男人的天堂 | 久草美女视频 | 欧产日产国产精品专区 | 91拍拍在线观看 | 四虎影院入口 | 情趣视频网站在线观看 | 久久精品免费全国观看国产 | jizzjizzjizz中国 | 2022国产91精品久久久久久 | 黄色理伦| 亚久久 | 国内精品久久久久久久97牛牛 | 国产精品九九免费视频 | 欧美特黄a级猛片a级 | 在线黄色影院 | 亚洲福利视频精选在线视频 | 亚洲麻豆视频 | 天天射综合 | 久久综合给会久久狠狠狠 | 九九九久久久 | 亚洲性夜夜综合久久麻豆 | 久久国产精品-国产精品 | 国产精品夜夜春夜夜爽久久 | 99热这里只有精品99 | 久草青青在线视频 | 日韩一级片 | 亚洲综合中文网 | 国产性精品| 四虎在线永久精品高清 | 91亚洲欧美 | 亚洲欧洲日产国码二区首页 | 日本不卡一区二区三区 最新 | 亚洲欧美日韩中文在线 | 日日私人影院 | 国产免费无遮挡精品视频 | 日韩精品视频美在线精品视频 | 亚洲精品第一国产综合高清 |