日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

[2017.02.23] Java8 函数式编程

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [2017.02.23] Java8 函数式编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以前學過Haskell,前幾天又復習了其中的部分內容。
函數式編程與命令式編程有著不一樣的地方,函數式編程中函數是第一等公民,通過使用少量的幾個數據結構如list、map、set,以及在這些數據結構上的專門定制化操作,來實現代碼的復用。同時函數式編程有惰性求值、高階函數、柯里化、Point-free等風格,常用的幾個函數式風格的操作有 map、filter、reduce/foldr/foldl 等。 Haskell是一種純函數式編程語言,函數沒有副作用。而Python語言和Java8等則是多范式編程語言,提供了部分的函數式編程的實現。
今天閱讀《Java8 函數式編程 (Java 8 Lambdas: Functional Programming for the Masses)》的前幾章,編寫一個簡單的小程序,盡量更多地使用和測試Java8中的lambda表達式、Stream流操作、惰性求值等函數式編程風格。
PS. 最近讀了不少的書籍,很多書對自己真正有用的部分真的不多。曾經傻啦吧唧地拿到一本書從頭到尾沒有重點地看,時間沒少花費,效果卻差強人意。閱讀呀,有時候還是要帶著目的去讀,不管是不是功利性地,只要能夠學得快記得牢用得好,過程都不是問題!


/*** Created by auss on 17-2-23.*/import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;public class Main {public static void main(String[] args) {System.out.println("Hello World!");test_lambda();}public static void test_lambda() {List<Integer> ilist = Stream.of(Arrays.asList(1, 2, 3, 4, 5), Arrays.asList(6, 7, 8, 9)).flatMap(number -> number.stream()) // 合并,惰性求值.peek(value -> System.out.println("  " + value.toString())) // 遍歷輸出.collect(Collectors.toList()); //輸出位list,觸發及時求值操作Integer res = ilist.stream()  //List轉化為Stream對象 stream()串行流,parallelStream()并行流.parallel()  //將Stream并行化處理.filter(value -> value % 2 != 0)  //過濾奇數.map((value) -> value * 3 + 1)    //乘以3,加上1.reduce(0, (acc, elem) -> acc + elem); // 累加求和,初始值為0,System.out.println("Result : " + res.toString());      // 變量的自動裝線與拆箱}
}

轉載于:https://www.cnblogs.com/ausk/p/6435093.html

總結

以上是生活随笔為你收集整理的[2017.02.23] Java8 函数式编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。