当前位置: 首页 > 后端技术 > Java

stream.map和stream.foreach的区别

时间:2023-04-01 14:30:31 Java

缃戜笂鏈夊緢澶氭枃绔犺В閲婁簡涓よ€呯殑鍖哄埆锛屼絾澶у涓嶆槸涓嶆竻妤氬氨鏄お澶嶆潅锛岀湅涓嶆噦銆傛墍浠ュ氨閫氫織鐨勮涓€涓嬶紝姣曠珶涓嶄細澶繁濂ワ紝鍙槸涓汉鐨勭悊瑙c€備粈涔堟槸娴侊紵鎴戜滑鍦ㄤ娇鐢ㄩ泦鍚堟垨鏁扮粍瀵瑰厓绱犺繘琛屾搷浣滄椂锛岀粡甯镐細閬囧埌杩欐牱鐨勬儏鍐碉細閽堝涓嶅悓绫诲瀷鐨勫瓨鍌ㄥ厓绱狅紝鏍规嵁鐗瑰畾鏉′欢杩涜鏌ユ壘銆佹帓搴忕瓑鎿嶄綔锛屽線寰€浼氬啓涓€澶ф浠g爜銆傝€屼笖锛屼笉鍚岀被鍨嬬殑鏁版嵁锛屾搷浣滄柟娉曚篃涓嶅悓銆傛瘮濡備竴涓瓨鍌⊿tudent鐨勫疄浣撶被鍜屼竴涓彧瀛樺偍String绫诲瀷鐨勯泦鍚堢殑鎿嶄綔姝ラ鑲畾鏈夊緢澶х殑涓嶅悓锛屼笉鑳介€氱敤锛屼絾鏄痵treamAPI鍙互瑙e喅杩欎釜闂銆備负浜嗚В鍐宠繖浜涢棶棰橈紝瀵规暟鎹搷浣滆繘琛岀粺涓€澶勭悊銆傚彲浠ョ悊瑙d负streamAPI灏嗛泦鍚堟垨鏁扮粍涓殑鏁版嵁杞崲鎴愮粺涓€鐨勬牸寮忥紝閫氳繃鎸囧畾鐨勬柟娉曞鍏朵腑鐨勫厓绱犺繘琛屾搷浣滐紝鐒跺悗灏嗘搷浣滃悗鐨勬暟鎹互stream鐨勬牸寮忚繑鍥炪€傝繖鏍峰仛鐨勫ソ澶勬槸鎴戜滑涓嶅啀闇€瑕佸叧蹇冩垜浠搷浣滅殑鏁版嵁绫诲瀷锛屾垜浠彧闇€瑕佸皢鍏惰浆鎹㈡垚stearmstream鍗冲彲缁熶竴鎿嶄綔锛屽ぇ澶х畝鍖栦簡鎴戜滑鐨勫紑鍙戞祦绋嬨€俿tream.map鍜宻tream.forEach鐨勫尯鍒厛鏉ョ湅鐪嬭繖涓や釜鏂规硶鐨勫畾涔夝煈噕oidforEach(Consumeraction);Streammap(Function鏄犲皠鍣級锛涘氨绠楃湅涓嶆噦杩欎袱涓柟娉曞畾涔夛紝涔熶竴瀹氳兘鐭ラ亾forEach杩斿洖鐨剉oid鍜宮ap杩斿洖鐨凷tream绫诲瀷銆傛帴涓嬫潵鎴戜滑鐪嬭繖涓緥瀛愷煈?/瀹氫箟涓€涓狪nteger绫诲瀷鐨勯泦鍚圠istnumbers=Arrays.asList(2,3,7,5);//寰楀埌瀵瑰簲鐨勫钩鏂规暟numbers.stream().map(x->x*x).forEach(System.out::println);//Result:494925鐢辨锛屾垜浠彲浠ュ緱鍑虹粨璁猴細map鏄彇number涓殑姣忎釜鍏冪礌鐨勫€煎悗杩涜鎿嶄綔锛岃€岀劧鍚庡皢姣忎竴娆¤繍绠楃殑缁撴灉杩斿洖缁檔umber锛岃€宖orEach鏄竴涓亶鍘嗗惊鐜紝閫氳繃閬嶅巻寰幆杩涜蹇呰鐨勬搷浣滐紝骞朵笉浼氱洿鎺ュ皢鍊艰繑鍥炵粰number锛屾墍浠ヤ袱鑰呯殑鍖哄埆杩樻槸姣旇緝鏄庢樉鐨勩€?/p>