麻豆黑色丝袜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
主站蜘蛛池模板: 日韩成人午夜| 亚洲欧美日韩精品专区| 色综合天天综合网国产成人网 | 香蕉视频久久久| 先锋影音av资源网| 国产精品爽爽va在线观看网站| 搞逼视频免费看| 美女把腿扒开让男人桶爽了| 亚洲最大成人网色| 久久久99精品免费观看| 成人久久精品一区二区三区| 欧美人与动性xxxxx杂性| 99久久精品费精品国产| 免费观看我爱你电影| 午夜dy888| 男朋友想吻我腿中间部位| 免费视频88av在线| 久久精品国产一区二区三区不卡| 99香蕉国产精品偷在线观看| 啦啦啦手机完整免费高清观看| 亚洲s色大片在线观看| 国产三级在线免费| 一个人看的hd免费视频| 国产精欧美一区二区三区| 国产黄大片在线观看| 久久依人| 夫妇交换性2国语在线观看 | 娇妻之欲海泛舟白丽交换| 菠萝蜜视频在线观看免费视频| 色哟哟网站在线观看| 99久久精品免费看国产| 欧美一卡2卡3卡4卡公司| 美女的尿口免费看软件| 久久亚洲精品无码| 国产免费拔擦拔擦8x| 国产精品麻豆va在线播放| 19岁rapper潮水第一集| 亚洲一级毛片免费观看| 欧美人善交videosg| 日本在线免费看片| 色鬼7777久久|