麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > StreamReduce用法詳解

StreamReduce用法詳解

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-24 23:56:10 1700841370

一、Stream用法

Stream是Java 8新加入的一個概念,它提供了一種處理集合元素的方式,可以支持類似于SQL語句一樣對集合進行查詢和處理操作,特別是對于大數(shù)據(jù)量操作,可以大幅度提高程序的性能效率。

使用Stream需要先建立一個集合,然后使用stream()方法將其轉化成Stream對象,再利用Stream提供的方法進行操作。


List list = Arrays.asList(1,2,3,4,5); //建立一個集合
Stream stream = list.stream(); //將集合轉化為Stream對象

二、StreamReduce函數(shù)

StreamReduce函數(shù)是Stream中常用的一個方法之一,它的作用是將Stream的元素按照指定的方式進行合并,最終返回一個合并后的結果。

reduce方法有兩個參數(shù),第一個是初始值,第二個是合并的方式。初始值可以是一個默認值,也可以是集合中的一個元素。合并方式只要滿足結合律即可。常見的合并方式包括求和、求積、字符串連接等等。


List list = Arrays.asList(1,2,3,4,5);
int sum = list.stream().reduce(0,(x,y)->x+y); //求和
int product = list.stream().reduce(1,(x,y)->x*y); //求積
String str = list.stream().map(String::valueOf).reduce("",(x,y)->x+y); //字符串連接

三、StreamWriter用法

StreamWriter是一個Java 8新增的功能,它可以將Stream中的元素按照指定的方式輸出到文件或者控制臺上,可以方便地進行日志記錄等操作。

StreamWriter的使用步驟分為三部分:建立輸出流、將流轉化為StreamWriter對象、將StreamWriter對象寫入到文件或控制臺上。


//將Stream對象寫入到文件中
List list = Arrays.asList(1,2,3,4,5);
Stream stream = list.stream();
PrintWriter pw = new PrintWriter(new FileWriter("output.txt"));
stream.forEach(pw::println);
pw.close();

//將Stream對象輸出到控制臺
List list = Arrays.asList(1,2,3,4,5);
Stream stream = list.stream();
stream.forEach(System.out::println);

四、Stream流Reduce方法

Stream流Reduce方法是Stream中的一個常用操作方法,它可以將集合中的元素按照指定的方式合并,并返回一個Optional對象,用于表示合并后的結果。

reduce方法有三個參數(shù):第一個是合并的方式,第二個是初始值,第三個是合并結果的條件。當條件滿足時,合并結果可以被返回。


List list = Arrays.asList(1,2,3,4,5);
Optional max = list.stream().reduce((x,y)->x>y?x:y); //求最大值
Optional min = list.stream().reduce((x,y)->x result = list.stream().reduce((x,y)->x+y); //求和

五、Reduce的用法

Reduce方法在Stream的操作中扮演了重要的角色,它不僅僅可以用于集合合并,還可以用于數(shù)據(jù)統(tǒng)計、篩選等操作。

常見的Reduce用法包括:統(tǒng)計集合元素個數(shù)、查找滿足條件的元素、返回元素數(shù)組等。


List list = Arrays.asList(1,2,3,4,5);
long count = list.stream().count(); //元素個數(shù)
Optional find = list.stream().filter(x->x>3).findFirst(); //查找第一個大于3的元素
Object[] array = list.stream().toArray(); //將元素轉化為數(shù)組

六、Stream常用方法

除了StreamReduce和Reduce方法外,Stream還提供了很多其他的處理方法,用于方便地對集合進行各種操作。

常見的Stream方法包括:filter(過濾)、map(映射)、distinct(去重)、sorted(排序)等。


List list = Arrays.asList(1,2,3,4,5);
Stream filter = list.stream().filter(x->x>3); //過濾出大于3的元素
Stream map = list.stream().map(x->x*x); //將元素平方
Stream distinct = list.stream().distinct(); //去重
Stream sorted = list.stream().sorted(); //排序

七、Stream流的方法

Stream流提供了各種操作方法,可以滿足不同的操作需求。除了常用的Reduce和Reduce方法外,還有其他各種方法可以方便地對集合進行處理。

常見的Stream方法包括:flatMap(扁平映射)、peek(查看操作)、skip(跳過元素)、limit(限制元素個數(shù))等。


List> list = Arrays.asList(Arrays.asList(1,2),Arrays.asList(3,4),Arrays.asList(5,6));
Stream flatMap = list.stream().flatMap(Collection::stream); //扁平化集合
Stream peek = list.stream().peek(System.out::println); //查看元素
Stream skip = list.stream().skip(2); //跳過前兩個元素
Stream limit = list.stream().limit(3); //限制只輸出前三個元素

八、Stream類的常用方法

Stream類是Java 8中常用的一個類,在Stream操作中發(fā)揮著重要的作用。Stream類提供了很多靜態(tài)方法和實例方法,用于方便地對集合進行各種操作。

常見的Stream類方法包括:of(創(chuàng)建Stream對象)、generate(生成Stream對象)、concat(合并Stream對象)、iterate(迭代器操作)等。


Stream stream1 = Stream.of(1,2,3); //創(chuàng)建Stream對象
Stream stream2 = Stream.generate(()->(int)(Math.random()*10)); //生成Stream對象
Stream stream3 = Stream.concat(stream1, stream2); //合并兩個Stream對象
Stream stream4 = Stream.iterate(1, x->x+1).limit(10); //生成從1到10的整數(shù)序列

九、Stream流的所有方法

Stream類提供了很多方法,用于對集合進行各種操作。這些方法可以互相組合,以實現(xiàn)不同的操作需求。

以下是Stream類的所有方法:


close()
collect()
count()
distinct()
filter()
findAny()
findFirst()
flatMap()
forEach()
forEachOrdered()
isParallel()
iterator()
limit()
map()
mapToDouble()
mapToInt()
mapToLong()
max()
min()
noneMatch()
parallel()
peek()
reduce()
sequential()
skip()
sorted()
spliterator()
toArray()

十、Stream.filter用法

Stream.filter方法是Stream類中的一個常用操作方法。它可以對集合中的元素進行條件過濾,只保留滿足條件的元素。

常見的Filter用法包括:保留指定條件的元素、過濾重復元素等。


List list = Arrays.asList(1,2,3,4,5,1,2);
Stream filter = list.stream().filter(x->x>3); //保留大于3的元素
Stream distinct = list.stream().distinct(); //去除重復元素

聲明:本站稿件版權均屬千鋒教育所有,未經(jīng)許可不得擅自轉載。
10年以上業(yè)內(nèi)強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 男按摩师电影| 亚洲欧洲中文日产| 美女毛片在线看| 波多野结衣教师在线| 水蜜桃免费视频| 啊灬啊灬用力灬再用力岳| 一区二区三区www| 中文字幕在线观看国产| 久久久久夜夜夜精品国产| 美女脱个精光让男人桶爽| 老师我好爽再深一点视频| 好骚导航| **实干一级毛片aa免费| lover视频无删减免费观看| 中文字幕在线高清| 三上悠亚国产精品一区| 久久精品人人做人人爽| 真实国产乱人伦在线视频播放| 久久精品免费一区二区三区| 男女猛烈xx00免费视频试看| 国产日韩欧美| 免费人成在线| 亚洲免费网址| 午夜dj影院| 91在i线观| 福利片一区| 狠狠夜色午夜久久综合热91| 嫩草影院免费看| 精品卡2卡3卡4卡免费| 娇小xxxxx性开放| 欧美午夜伦理片| 欧美韩日| 97色伦图片97综合影院 | 久久综合久久综合九色| 老师开嫩苞在线观看| 亚洲欧洲中文日产| 黄色三级理沦片| 国产剧情jvid在线观看| 亚洲高清视频免费| 亚洲精选在线观看| 在线观看免费av网站|