首页 > 编程语言 >Java8新特性

Java8新特性

时间:2022-12-14 14:01:38浏览次数:59  
标签:info stream Stream 特性 方法 Java8 o1 log

 一、Java8新特性

1.Lambda表达式

 Lambda是匿名函数,使用它可以写出简洁,灵活的代码。

    a.表达式无参数,无返回值,只有一个Lambda体

 Runnable  r1 = () -> log.info("hello world");

    b.表达式有参数,无返回值,

 Runnable r1 = (s) -> log.info(s);

    c.只有一个参数时,可省略()

    Runnable r1 = s -> log.info(s);

    d. 两个参数,有返回值

 Comparator<Integer>  comp = (o1,o2) -> {

  log.info("o1:{}",o1);

  log.info("o2:{}",o2);

  return (o1<o2)?o1:o2;

  };

  e.一条语句,return 和{}可省略

  Comparator<Integer> comp = (o1,o2) -> (o1<o2)?o1:o2;

 二、方法引用和构造器引用

1、方法引用:当要穿戴给Lambda体的操作已经有实现方法,可以直接使用方法引用(实现抽象方法的列表,必须要和方法引用的方法参数列表一致)方法引用:使用操作符“::”来将

方法和(类或者对象)分割开来

有三种情况:

a.对象::实例方法

b.类::实例方法

c.类::静态方法

三、Stream API

1.Stream API在java.util.stream包中,提供了一种高效且易于使用的处理数据方式

2.Stream特点:

  *Stream自己不会存储数据

  *Stream不会改变源对象

  *Stream操作时延迟执行的

3.Stream操作的步骤

  *Stream:要给数据源,获取一个流

  *中间操作:一个中间操作连接,对数据源的数据进行处理

  *终止操作:一个终止操作,执行中间操作,产生结果

创建流方式有多种:

第一种:通过集合,对于Collection接口(list,set,queue)直接调用Stream()可以获取stream

List<String> list = new ArrayList<>();

Stream<String> stringstream = list.stream();

Stream<String> parallelStream = list.parallelStream();

第二种:通过数组

Stream<String> stream = Arrays.stream(new String[]{});

第三种:Stream.of

Stream<String> stream = Stream.of("A","B","C","D");

 

 

    

 

标签:info,stream,Stream,特性,方法,Java8,o1,log
From: https://www.cnblogs.com/san-quan/p/16981688.html

相关文章

  • Nacos-配置中心,特性,启动,集成mysql,快速入门
    Nacos-配置管理目录Nacos-配置管理1.什么是配置中心1.1什么是配置1.2什么是配置中心2Nacos****简介2.1主流配置中心对比2.2Nacos****简介2.3Nacos****特性3Na......
  • C# 11新特性之file关键字
    C#11添加了文件作用域类型功能:一个新的file修饰符,可以应用于任何类型定义以限制其只能在当前文件中使用。这样,我们可以在一个项目中拥有多个同名的类。目录示例file不......
  • Python dict 高阶特性
    特性(基于Python3.4流畅的Python部分可能不适用最新版本)键必须可散列字典和集合实现的背后是散列。散列最小单元是表元。内存开销巨大相比列表将占用大量内存。典型的......
  • Java8实战之时间日期操作
    Java8实战之时间日期操作前言前面我们已经基本学习完Java8中应用场景比较广泛的新功能或者说新特性,在本小节中,我们再来学习多一个新特性,时间日期操作。时间日期操作在Java8......
  • 路由分发 路由别名的名称空间 虚拟环境 HTTPresponse JsonResponse request对象获取
    目录路由分发路由别名冲突反向解析失败方式一:名称空间include方式二:别名不冲突即可虚拟环境python-mvenvvenv_name视图层之必会三板斧HTTPresponseJsonResponse对象......
  • 【Unity】 HTFramework框架(三十四)框架实用特性
    更新日期:2020年11月6日。Github源码:​​​[点我获取源码]​​​Gitee源码:​​[点我获取源码]​​索引​​框架实用特性​​​​LnkTools特性(快捷工具)​​​​CSDNBlogURL......
  • [转].NET(C#):使用反射来获取枚举的名称、值和特性
    .NET(C#):使用反射来获取枚举的名称、值和特性 首先需要从内部了解一下枚举(Enumeration),相信许多人已经知道了,当我们声明一个这样的枚举类型:enumMyEnum{   ......
  • 【Dubbo3入门到精通】「序章介绍说明」Dubbo3新特性概览的介绍说明
    Dubbo3的微服务框架系列​​【Dubbo3入门到精通】总体技术体系介绍及技术指南(目录)​​本系列专题是关于Dubbo的简单介绍,涵盖Dubbo的核心概念、基本使用方式以及Dubbo3核心......
  • mysql8其它新特性
    文章目录​​MySQL8.0新特性​​​​新特性1:窗口函数​​​​序号函数​​​​ROW_NUMBER()函数​​​​RANK()函数​​​​DENSE_RANK()函数​​​​分布函数​​​​PERCE......
  • JAVA8 lambda之reduce三种用法
    reduce操作可以根据指定的计算模型,实现从Stream中生成一个指定类型的值。一,用法1未定义初始值,从而第一次执行的时候第一个参数m的值是Stream的第一个元素,第二个参数n是St......