zoukankan      html  css  js  c++  java
  • JDK1.8新特性

    1、Lambda                                                           

    Lambda的语法目前仅对于只有一个抽象方法的接口。

    在Lambda项目中,早期称为SAM类型(SAM = single abstract method 单一抽象方法)。在jdk1.8中,叫函数接口(functional interface)。比如Runnable,Callable,Comparator。

    lambda语法包含三部分:a、参数列表;b、箭头符号“->”;c、代码块。

    (arg1,arg2)->{Statement};

    只有一个参数可以写成:arg->{Statement};

    代码块类似方法体,return语句将控制权交还给匿名方法(即Lambda表达式)的调用者。如果代码块只有一行,可以省略return关键字和{}括号。

    1 import java.util.Comparator;
    2 public class TestLambda {
    3     public static void main(String[] args) {
    4         Runnable r = ()->{System.out.println("hello world");};
    5         Comparator<String> c = (String s1,String s2)->s2.length()-s1.length();
    6         r.run();
    7         System.out.println(c.compare("s1", "12323"));
    8     }
    9 }

    结果是:

    1 hello world
    2 3

    我们也可以自定义函数接口

    1 public class TestLambda {
    2     interface testlambdainterface{
    3         public void me(String str);
    4     }
    5     public static void main(String[] args) {
    6         testlambdainterface tli = (String s)->{System.out.println(s);};
    7         tli.me("hello world");
    8     }
    9 }

    2、Stream类                                                           

    提供了只保存算法的一个类,是一个高版本的Iterator。

    可以通过Collection.stream()方法产生,静态方法LongStream.of(1,2,3,4)和自定义。

  • 相关阅读:
    函数定义、调用
    条件语句和循环语句
    eclipse中安装pydev插件出现duplicate location
    编码类型
    除法
    数据类型
    命令和python模式转换
    前言
    SpringMVC_json
    解决eclipse中Tomcat服务器的server location选项不能修改的问题
  • 原文地址:https://www.cnblogs.com/fankongkong/p/7410205.html
Copyright © 2011-2022 走看看