麻豆黑色丝袜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
主站蜘蛛池模板: 又大又湿又紧又爽a视频| 两个人看的www免费高清| 四虎精品久久久久影院| 又黄又爽的视频在线观看| 一级毛片不卡| 福利电影一区二区| 日本年轻的妈妈| 欧美妈妈的朋友| 乱亲乱族| 日本三级免费| 国产一区二区高清| 亚洲欧美一区二区三区电影| 老司机午夜在线视频免费| 美女把尿口扒开让男人桶| 日韩一级一片| 男按摩师电影| 久久99精品九九九久久婷婷| 欧美激情xxxx性bbbb| 豪妇荡乳1一5白玉兰| 337p色噜噜人体大胆欧美| 啊v在线视频| 伊人久久大香线蕉久久婷婷| 久久婷婷国产综合精品| 一本大道香蕉中文在线高清| 男人把女人桶爽30分钟一| 两个人看的www免费高清| 日本一道本在线视频| 波多野结衣女上司| 日本特黄特色aa大片免费| 最近中文字幕国语免费完整| 亚洲人成网站在线播放2019| 中文字幕在线播放第一页| 在线网站你懂得| 一个人看的www视频免费在线观看| 一本久久a久久精品亚洲| 男人的j插入女人的p| 蜜桃成熟时2005| 国产精品宾馆在线| 国产无遮挡又黄又爽在线视频| 把她抵在洗手台挺进撞击视频| 黄色大片在线视频|