Functional Programming in JAVA

作者: 455ea3dbb5ca | 来源:发表于2017-04-09 22:21 被阅读43次

    最近觉得需要补一补java语言基础知识,java8出来很久了,平时也经常看到身边的人在用,就从这里开始吧,看书的同时做一些纪录。

    书名是《Functional Programming in JAVA》,第一章的内容主要是讲述函数式编程与之前的方式相比到底有些什么好处,用一些简单的例子让大家理解什么是函数式编程;从第二章开始讲述java8里具体增加的东西。这一系列文章先从第二章开始,首先介绍“怎么使用”,后面再补充“为什么要这么用”。


    Collections

    1. list遍历

    首先创建不可变集合list friends:

    final List friends = Arrays.asList("Brian","Nate","Neal","Raju","Sara","Scott");

    JDK8之前的方式遍历list:

    方法一:

    for(inti = 0; i < friends.size(); i++) {

        System.out.println(friends.get(i));

    }

    方法二:

    for(String name : friends) {

        System.out.println(name);

    }

    JDK8中的方式演变过程:

    方法一:

    friends.forEach(newConsumer() {

        public void accept(final String name) {

            System.out.println(name);

        }

    });

    方法二:

    friends.forEach((final String name) ->System.out.println(name));

    方法三:

    friends.forEach((name) ->System.out.println(name));

    方法四:

    friends.forEach(name ->System.out.println(name));

    方法五:

    friends.forEach(System.out::println);

    2. list修改

    还是以list friends为例,将friends中所有的字母都变成对应的大写字母。

    JDK8之前的方式:

    方法一:

    final List uppercaseNames =new ArrayList();

    for(String name : friends) {

    uppercaseNames.add(name.toUpperCase());

    }

    JDK8中的方式演变过程:

    方法一:

    final List uppercaseNames =new ArrayList();

    friends.forEach(name -> uppercaseNames.add(name.toUpperCase()));

    System.out.println(uppercaseNames);

    方法二:

    friends.stream()

                .map(name -> name.toUpperCase())

                .forEach(name ->System.out.print(name +" "));

    System.out.println();

    方法三:

    friends.stream()

               .map(String::toUpperCase)

               .forEach(name ->System.out.println(name));

    3.list查找

    在friends中查找以N开头的元素:

    JDK8之前的方式:

    final List startsWithN =new ArrayList();

    for(String name : friends) {

        if(name.startsWith("N")) {

            startsWithN.add(name);

       }

    }

    JDK8中的方式演变过程:

    方法一:

    final List startsWithN =friends.stream()

    .filter(name -> name.startsWith("N"))

    .collect(Collectors.toList());

    相关文章

      网友评论

        本文标题:Functional Programming in JAVA

        本文链接:https://www.haomeiwen.com/subject/cgrjattx.html