文档章节

java8函数式编程

P
 Pxc_春春彭
发布于 2017/05/22 11:38
字数 343
阅读 4
收藏 0

Java8最大的变化是引入了Lambda表达式。

Lambda表达式:一种紧凑的、传递行为的方式。

Lambda语法

包含三个部分

  1. 一个括号内用逗号分隔的形式参数,参数是函数式接口里面方法的参数
  2. 一个箭头符号:->
  3. 方法体,可以是表达式和代码块,方法体函数式接口里面方法的实现,如果是代码块,则必须用{}来包裹起来,且需要一个return 返回值,但有个例外,若函数式接口里面方法返回值是void,则无需{}

List遍历改造

原本的方法遍历List

 private void testPrint(List<String> list) {   
        for (String str : list) {
          Systrm.out.println(str); 
        }
    }

改造后

  public void listPrint( List<String> list) {
        list.forEach(str -> System.out.println(str));  // list.forEach(System.out::println);
    }

统计个数

改造前


  public void testCount (List < String > list) {
            int count = 0;
            for (String str : list) {
                if (str.contains("xiao")) {
                    count++;
                }
            }
            System.out.println(count);
        }

改造后

  public void testCount(List<String> list) {
        long count = list.stream().filter(str -> str.contains("xiao")).count();
        System.out.println(count);
    }

 

Stream的相关方法

Stream的生成:1、Stream接口 2、Collection接口

1、Stream接口

  Stream.of("1","3").forEach(System.out::println);
 Stream.generate(()->Math.random()).limit(3).forEach(System.out::println);
    
       Stream.iterate(1,i->i+1).limit(10).forEach(System.out::println);

2、Collection接口,使用stream()方法

list.stream()

 

Stream的使用:

1、distinct: 对于Stream中包含的元素进行去重操作(去重逻辑依赖元素的equals方法),新生成的Stream中没有重复的元素; 

 

© 著作权归作者所有

共有 人打赏支持
P
粉丝 2
博文 50
码字总数 30676
作品 0
程序员

暂无文章

git +STS使用问题解决一

1. 2.点以一个pull就是更新代码 3.synchronize workSpace 同步代码,同SVN一致

森火
5分钟前
0
0
powerBi odbc 连接impala 实现自助分析

配置Impala以使用ODBC 可以将第三方产品设计为使用ODBC与Impala集成。为获得最佳体验,请确保支持您打算使用的任何第三方产品。验证支持包括检查Impala,ODBC,操作系统和第三方产品的版本是...

hblt-j
9分钟前
0
0
Purism FAQ

<font size="37" color="#006248" face="幼圆"> <p align="center"> Purism FAQ </p> </font> 原文:https://puri.sm/faq/ 原作者:Purism Team 翻译者:冰焰火灵X 1079092922@qq.com 文章许......

ICE冰焰火灵X
25分钟前
0
0
nginx+webdav

1、配置Nginx以支持WebDav: Webdav是nginx一个组件,默认编译nginx时是没有安装这个组件的。 如果跟应用公用一个nginx,需要重新编译安装nginx,重新安装前需要备份好原来的nginx.conf。 1....

yaukie
31分钟前
0
0
spring 事件

ContextRefreshedEvent Event raised when an {@code ApplicationContext} gets initialized or refreshed. ContextClosedEvent Event raised when an {@code ApplicationContext} gets clos......

Canaan_
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部