真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java8中Stream常用方法有哪些-創(chuàng)新互聯(lián)

這篇文章主要介紹Java8中Stream常用方法有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司與策劃設(shè)計(jì),祁縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:祁縣等地區(qū)。祁縣做網(wǎng)站價(jià)格咨詢:18980820575

Java8 Stream常用方法

Java8中提供了Stream對集合操作作出了極大的簡化,學(xué)習(xí)了Stream之后,我們以后不用使用for循環(huán)就能對集合作出很好的操作。

一、流的初始化與轉(zhuǎn)換:
 Java中的Stream的所有操作都是針對流的,所以,使用Stream必須要得到Stream對象:
 1、初始化一個(gè)流:
  Stream stream = Stream.of("a", "b", "c");
 2、數(shù)組轉(zhuǎn)換為一個(gè)流:
  String [] strArray = new String[] {"a", "b", "c"};
  stream = Stream.of(strArray);
  或者
  stream = Arrays.stream(strArray);
 3、集合對象轉(zhuǎn)換為一個(gè)流(Collections):
  List list = Arrays.asList(strArray);
  stream = list.stream();

二、流的操作:


流的操作可以歸結(jié)為幾種:

1、遍歷操作(map):


使用map操作可以遍歷集合中的每個(gè)對象,并對其進(jìn)行操作,map之后,用.collect(Collectors.toList())會得到操作后的集合。

1.1、遍歷轉(zhuǎn)換為大寫:
List output = wordList.stream().
    map(String::toUpperCase).


       collect(Collectors.toList());

1.2、平方數(shù):
List nums = Arrays.asList(1, 2, 3, 4);
  List squareNums = nums.stream().
       map(n -> n * n).
     collect(Collectors.toList());


2、過濾操作(filter):


使用filter可以對象Stream中進(jìn)行過濾,通過測試的元素將會留下來生成一個(gè)新的Stream。

2.1、得到其中不為空的String
List filterLists = new ArrayList<>();
filterLists.add("");
filterLists.add("a");
filterLists.add("b");
List afterFilterLists = filterLists.stream()
     .filter(s -> !s.isEmpty())


     .collect(Collectors.toList());

3、循環(huán)操作(forEach):
如果只是想對流中的每個(gè)對象進(jìn)行一些自定義的操作,可以使用forEach:
List forEachLists = new ArrayList<>();
forEachLists.add("a");
forEachLists.add("b");
forEachLists.add("c");


forEachLists.stream().forEach(s-> System.out.println(s));

4、返回特定的結(jié)果集合(limit/skip):
limit 返回 Stream 的前面 n 個(gè)元素;skip 則是扔掉前 n 個(gè)元素:
List forEachLists = new ArrayList<>();
forEachLists.add("a");
forEachLists.add("b");
forEachLists.add("c");
forEachLists.add("d");
forEachLists.add("e");
forEachLists.add("f");
List limitLists = forEachLists.stream().skip(2).limit(3).collect(Collectors.toList());


注意skip與limit是有順序關(guān)系的,比如使用skip(2)會跳過集合的前兩個(gè),返回的為c、d、e、f,然后調(diào)用limit(3)會返回前3個(gè),所以最后返回的c,d,e

5、排序(sort/min/max/distinct):
sort可以對集合中的所有元素進(jìn)行排序。max,min可以尋找出流中大或者最小的元素,而distinct可以尋找出不重復(fù)的元素:

5.1、對一個(gè)集合進(jìn)行排序:
List sortLists = new ArrayList<>();
sortLists.add(1);
sortLists.add(4);
sortLists.add(6);
sortLists.add(3);
sortLists.add(2);
List afterSortLists = sortLists.stream().sorted((In1,In2)->


     In1-In2).collect(Collectors.toList());

5.2、得到其中長度大的元素:
List maxLists = new ArrayList<>();
maxLists.add("a");
maxLists.add("b");
maxLists.add("c");
maxLists.add("d");
maxLists.add("e");
maxLists.add("f");
maxLists.add("hahaha");
int maxLength = maxLists.stream().mapToInt(s->s.length()).max().getAsInt();


System.out.println("字符串長度最長的長度為"+maxLength);

5.3、對一個(gè)集合進(jìn)行查重:
List distinctList = new ArrayList<>();
distinctList.add("a");
distinctList.add("a");
distinctList.add("c");
distinctList.add("d");
List afterDistinctList = distinctList.stream().distinct().collect(Collectors.toList());
其中的distinct()方法能找出stream中元素equal(),即相同的元素,并將相同的去除,上述返回即為a,c,d。

6、匹配(Match方法):
有的時(shí)候,我們只需要判斷集合中是否全部滿足條件,或者判斷集合中是否有滿足條件的元素,這時(shí)候就可以使用match方法:
allMatch:Stream 中全部元素符合傳入的 predicate,返回 true
anyMatch:Stream 中只要有一個(gè)元素符合傳入的 predicate,返回 true


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

6.1、判斷集合中沒有有為‘c’的元素:
List matchList = new ArrayList<>();
matchList.add("a");
matchList.add("a");
matchList.add("c");
matchList.add("d");


boolean isExits = matchList.stream().anyMatch(s -> s.equals("c"));

6.2、判斷集合中是否全不為空:
List matchList = new ArrayList<>();
matchList.add("a");
matchList.add("");
matchList.add("a");
matchList.add("c");
matchList.add("d");
boolean isNotEmpty = matchList.stream().noneMatch(s -> s.isEmpty());


則返回的為false

以上是“Java8中Stream常用方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


名稱欄目:Java8中Stream常用方法有哪些-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://weahome.cn/article/jpegj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部