中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)站建設(shè)專業(yè)團(tuán)隊(duì)軟文廣告例子

網(wǎng)站建設(shè)專業(yè)團(tuán)隊(duì),軟文廣告例子,可以做動(dòng)畫的網(wǎng)站都有哪些內(nèi)容,網(wǎng)站域名實(shí)名認(rèn)證嗎Java Stream管道流是用于簡(jiǎn)化集合類元素處理的java API。 在使用的過(guò)程中分為三個(gè)階段: 將集合、數(shù)組、或行文本文件轉(zhuǎn)換為java Stream管道流管道流式數(shù)據(jù)處理操作,處理管道中的每一個(gè)元素。上一個(gè)管道中的輸出元素作為下一個(gè)管道的輸入元素。管道流結(jié)果…

Java Stream管道流是用于簡(jiǎn)化集合類元素處理的java API。
在使用的過(guò)程中分為三個(gè)階段:

  • 將集合、數(shù)組、或行文本文件轉(zhuǎn)換為java Stream管道流
  • 管道流式數(shù)據(jù)處理操作,處理管道中的每一個(gè)元素。上一個(gè)管道中的輸出元素作為下一個(gè)管道的輸入元素。
  • 管道流結(jié)果處理操作

我之前寫過(guò)的一個(gè)例子:

    List<String> nameStrs = Arrays.asList("Monkey", "Lion", "Giraffe","Lemur");List<String> list = nameStrs.stream().filter(s -> s.startsWith("L")).map(String::toUpperCase).sorted().collect(toList());System.out.println(list);
  • 首先使用stream()方法將字符串List轉(zhuǎn)換為管道流Stream
  • 然后進(jìn)行管道數(shù)據(jù)處理操作,先用fliter函數(shù)過(guò)濾所有大寫L開頭的字符串,然后將管道中的字符串轉(zhuǎn)換為大寫字母toUpperCase,然后調(diào)用sorted方法排序。這些API的用法在本號(hào)之前的文章有介紹過(guò)。其中還使用到了lambda表達(dá)式和函數(shù)引用。
  • 最后使用collect函數(shù)進(jìn)行結(jié)果處理,將java Stream管道流轉(zhuǎn)換為L(zhǎng)ist。最終list的輸出結(jié)果是:[LEMUR, LION]

1、ForEach和ForEachOrdered

如果我們只是希望將Stream管道流的處理結(jié)果打印出來(lái),而不是進(jìn)行類型轉(zhuǎn)換,我們就可以使用forEach()方法或forEachOrdered()方法:

    Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").parallel().forEach(System.out::println);Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").parallel().forEachOrdered(System.out::println);
  • parallel()函數(shù)表示對(duì)管道中的元素進(jìn)行并行處理,而不是串行處理,這樣處理速度更快。但是這樣就有可能導(dǎo)致管道流中后面的元素先處理,前面的元素后處理,也就是元素的順序無(wú)法保證
  • forEachOrdered從名字上看就可以理解,雖然在數(shù)據(jù)處理順序上可能無(wú)法保障,但是forEachOrdered方法可以在元素輸出的順序上保證與元素進(jìn)入管道流的順序一致。也就是下面的樣子(forEach方法則無(wú)法保證這個(gè)順序):
    MonkeyLionGiraffeLemurLion

2、元素的收集collect

java Stream 最常見的用法就是:一將集合類轉(zhuǎn)換成管道流,二對(duì)管道流數(shù)據(jù)處理,三將管道流處理結(jié)果在轉(zhuǎn)換成集合類。那么collect()方法就為我們提供了這樣的功能:將管道流處理結(jié)果在轉(zhuǎn)換成集合類。

轉(zhuǎn)換為Set

    Set<String> collectToSet = Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion") .collect(Collectors.toSet());
  • 最終collectToSet 中的元素是:[Monkey, Lion, Giraffe, Lemur],因?yàn)镾et會(huì)去重。

轉(zhuǎn)換為L(zhǎng)ist

    List<String> collectToList = Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").collect(Collectors.toList());

通用的轉(zhuǎn)換方式

上面的元素轉(zhuǎn)換方式都是專用的。比如使用Collectors.toSet()收集為Set類型集合;使用Collectors.toList()收集為L(zhǎng)ist類型集合。那么,有沒有一種比較通用的數(shù)據(jù)元素收集方式,將數(shù)據(jù)收集為任意的Collection接口子類型。
所以,這里介紹一種通用的元素收集方式,你可以將數(shù)據(jù)元素收集到任意的Collection類型:即向所需Collection類型提供構(gòu)造函數(shù)的方式。

例如:

    LinkedList<String> collectToCollection = Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").collect(Collectors.toCollection(LinkedList::new));
  • 最終collectToCollection中的元素是: [Monkey, Lion, Giraffe, Lemur, Lion]

轉(zhuǎn)換為Array

通過(guò)toArray(String[]::new)方法收集Stream的處理結(jié)果,將所有元素收集到字符串?dāng)?shù)組中。

    String[] toArray = Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion") .toArray(String[]::new);

轉(zhuǎn)換為Map

使用Collectors.toMap()方法將數(shù)據(jù)元素收集到Map里面,但是出現(xiàn)一個(gè)問題:那就是管道中的元素是作為key,還是作為value。我們用到了一個(gè)Function.identity()方法,該方法很簡(jiǎn)單就是返回一個(gè)“ t -> t ”(輸入就是輸出的lambda表達(dá)式)。另外使用管道流處理函數(shù)distinct()來(lái)確保Map鍵值的唯一性。

    Map<String, Integer> toMap = Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").distinct().collect(Collectors.toMap(Function.identity(),   //元素輸入就是輸出,作為keys -> (int) s.chars().distinct().count()// 輸入元素的不同的字母?jìng)€(gè)數(shù),作為value));// 最終toMap的結(jié)果是: {Monkey=6, Lion=4, Lemur=5, Giraffe=6}  

分組轉(zhuǎn)換groupingBy

Collectors.groupingBy用來(lái)實(shí)現(xiàn)元素的分組收集,下面的代碼演示如何根據(jù)首字母將不同的數(shù)據(jù)元素收集到不同的List,并封裝為Map。

    Map<Character, List<String>> groupingByList =  Stream.of("Monkey", "Lion", "Giraffe", "Lemur", "Lion").collect(Collectors.groupingBy(s -> s.charAt(0) ,  //根據(jù)元素首字母分組,相同的在一組// counting()        // 加上這一行代碼可以實(shí)現(xiàn)分組統(tǒng)計(jì)));// 最終groupingByList內(nèi)的元素: {G=[Giraffe], L=[Lion, Lemur, Lion], M=[Monkey]}//如果加上counting() ,結(jié)果是:  {G=1, L=3, M=1}

這是該過(guò)程的說(shuō)明:groupingBy第一個(gè)參數(shù)作為分組條件,第二個(gè)參數(shù)是子收集器。

3、其他常用方法

    boolean containsTwo = IntStream.of(1, 2, 3).anyMatch(i -> i == 2);// 判斷管道中是否包含2,結(jié)果是: truelong nrOfAnimals = Stream.of("Monkey", "Lion", "Giraffe", "Lemur").count();// 管道中元素?cái)?shù)據(jù)總計(jì)結(jié)果nrOfAnimals: 4int sum = IntStream.of(1, 2, 3).sum();// 管道中元素?cái)?shù)據(jù)累加結(jié)果sum: 6OptionalDouble average = IntStream.of(1, 2, 3).average();//管道中元素?cái)?shù)據(jù)平均值average: OptionalDouble[2.0]int max = IntStream.of(1, 2, 3).max().orElse(0);//管道中元素?cái)?shù)據(jù)最大值max: 3IntSummaryStatistics statistics = IntStream.of(1, 2, 3).summaryStatistics();// 全面的統(tǒng)計(jì)結(jié)果statistics: IntSummaryStatistics{count=3, sum=6, min=1, average=2.000000, max=3}

http://www.risenshineclean.com/news/27237.html

相關(guān)文章:

  • 圓通我做網(wǎng)站拉今日小說(shuō)百度搜索風(fēng)云榜
  • 企業(yè)網(wǎng)站策劃書下載自媒體平臺(tái)注冊(cè)
  • 時(shí)時(shí)彩 網(wǎng)站開發(fā)seo咨詢河北
  • 無(wú)錫高端網(wǎng)站建設(shè)營(yíng)銷文案
  • 順德做pc端網(wǎng)站鄭州seo外包顧問熱狗
  • 宜興做網(wǎng)站公司營(yíng)銷軟文怎么寫
  • 海曙網(wǎng)站制作職業(yè)培訓(xùn)學(xué)校加盟
  • 中小企業(yè)的網(wǎng)站建設(shè)seo怎么學(xué)
  • 企業(yè)對(duì)電子商務(wù)網(wǎng)站的建設(shè)百度官方網(wǎng)站網(wǎng)址是多少
  • 東莞大嶺山鎮(zhèn)網(wǎng)站建設(shè)新聞式軟文
  • 自己開網(wǎng)站工作室阿里云域名查詢和注冊(cè)
  • 企業(yè)網(wǎng)站的缺點(diǎn)有域名了怎么建立網(wǎng)站
  • 大連網(wǎng)站推廣招聘手機(jī)優(yōu)化大師為什么扣錢
  • 昆山做網(wǎng)站的jofuns市場(chǎng)營(yíng)銷一般在哪上班
  • 純靜態(tài)網(wǎng)站部署服務(wù)器跨界營(yíng)銷案例
  • 優(yōu)秀網(wǎng)站設(shè)計(jì)效果圖企業(yè)營(yíng)銷推廣怎么做
  • 格力網(wǎng)站建設(shè)首頁(yè)友情鏈接交換的作用在于
  • 廣東網(wǎng)站建設(shè)便捷抖音seo優(yōu)化
  • 哪些網(wǎng)站可以接單做推廣搜索引擎
  • 網(wǎng)站建設(shè)客服電話怎么找百度seo刷排名工具
  • 水電維修在哪個(gè)網(wǎng)站上做推廣好些系統(tǒng)優(yōu)化軟件
  • 怎么建個(gè)自己的網(wǎng)站seo建站收費(fèi)地震
  • 網(wǎng)站建設(shè)資訊平臺(tái)關(guān)鍵詞權(quán)重查詢
  • 達(dá)州做網(wǎng)站的公司b站引流推廣
  • 網(wǎng)站后臺(tái)添加投票系統(tǒng)電子商務(wù)網(wǎng)站建設(shè)方案
  • 做網(wǎng)站不會(huì)P圖怎么辦seo詞庫(kù)排行
  • 游戲ui設(shè)計(jì)落實(shí)20條優(yōu)化措施
  • 網(wǎng)站建設(shè)硬件網(wǎng)站怎么優(yōu)化推廣
  • 江蘇城鄉(xiāng)建設(shè)職業(yè)學(xué)院就業(yè)網(wǎng)站seo賺錢項(xiàng)目
  • 網(wǎng)站怎么進(jìn)行優(yōu)化排名福建鍵seo排名