当前位置: 首页 > wzjs >正文

企业网站整理优化2022年近期舆情热点话题

企业网站整理优化,2022年近期舆情热点话题,wordpress首页自定义缩略图,wordpress预缓存lambda表达式 只要是函数式接口(接口内只有一个未实现的方法,可以有其它默认方法),就可以用lambda表达式,也就是快速new一个匿名内部类。 实例化接口的三种方式 继承接口,并实现接口 直接实现匿名内部类 …

lambda表达式

  • 只要是函数式接口(接口内只有一个未实现的方法,可以有其它默认方法),就可以用lambda表达式,也就是快速new一个匿名内部类。

  • 实例化接口的三种方式

    1. 继承接口,并实现接口

    2. 直接实现匿名内部类

    3. 通过lambda表达式去实现匿名内部类

      package org.khaoden.lambda;interface animal {void sound();default void eat() {System.out.println("Eating");};
      }interface cat {void sound();default void eat() {System.out.println("Eating1");}
      }class Dog implements animal {public void sound() {System.out.println("Barking");}
      }public class Lambda {public static void main(String[] args) {Dog d = new Dog();d.sound();System.out.println("~~~~~~~~~~~~~~~~~");animal c = new animal() {@Overridepublic void sound() {System.out.println("Meow");}};c.sound();System.out.println("~~~~~~~~~~~~~~~~~");animal a = () -> {System.out.println("Woof");};a.sound();a.eat();System.out.println("~~~~~~~~~~~~~~~~~");}
      }
      
  • lambda表达式的匹配方式

    1. 如果没有参数类型,是通过函数的参数数量来匹配的,按照顺序匹配
    2. 如果有参数类型,就加上类型的匹配
例子
  • 比较器的lambda写法

    package org.khaoden.lambda;import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;class Student {String name;Integer grade;public Student(String name, int grade) {this.name = name;this.grade = grade;}
    }public class example {public static void main(String[] args) {List<Student> list = new ArrayList<>();list.add(new Student("khaoden", 10));list.add(new Student("khaoden1", 9));list.add(new Student("khaoden2", 8));printListVal(list);//        Collections.sort(list, new Comparator<Student>() {
    //            @Override
    //            public int compare(Student o1, Student o2) {
    //                return o1.grade.compareTo(o2.grade);
    //            }
    //        });// lambda表达式
    //        Collections.sort(list, (o1, o2) -> o1.grade.compareTo(o2.grade));// 方法引用,必须是传入的值就是比较的,且一定是升序的
    //        Collections.sort(list, Integer::compareTo); // 每次拿一个值去比较,list的元素类型就是比较器方法的擦参数类型// 对于有对应静态方法的可以直接使用Collections.sort(list, Comparator.comparingInt(o -> o.grade));printListVal(list);Runnable runnable = () -> System.out.println("hello world");runnable.run();Thread t = new Thread(() -> System.out.println("hello world from thread"));System.out.println("hello world1");t.start();}private static void printListVal(List<Student> list) {for (Student student : list) {System.out.println(student.name + " " + student.grade);}}
    }
    
  • 使用注意

    • lambda表达式本质就是对方法的快速实现,如果对应的类型有现成的方法,可以使用方法引用去调用。
    • 方法引用不需要传递参数,直接把值传入比较即可。如果比较的是对应对象的属性,可以使用Comparator的静态方法,比如Integer是comparingInt(x -> x.val)
    • lambda表达式的变量类型必须是接口,因为是用来匿名内部类的,写一个类完全没有意义,而且也没有接口继承类的。

Function

  • java提供了一系列的函数时接口

  • 类型分别

    1. 消费者 accept

    2. 生产者 get

    3. 多功能函数 apply

    4. 普通函数

      import java.util.function.BiFunction;
      import java.util.function.Consumer;
      import java.util.function.Function;
      import java.util.function.Supplier;public class Func {public static void main(String[] args) {// 消费者Consumer<String> consumer = (t) -> {System.out.println(t);};// 提供者Supplier<String> supplier = () -> {return "hello world";};// 普通函数Runnable runnable = () -> {System.out.println("hello world");};// 多功能函数Function<String, String> function = (t) -> {return t;};// 多参数功能函数BiFunction<String, String, String> biFunction = (t, u) -> {return t + u;};System.out.println(function.apply("hello world"));System.out.println(biFunction.apply("hello", " world"));System.out.println(supplier.get());consumer.accept("hello world");}
      }
      
  • 常用接口

    1. 断言Predicate:返回值是boolean,根据传来的参数去判断

      // 断言
      Predicate<Integer> predicate = t -> t % 2 == 0;
      System.out.println(predicate.test(2)); // 正向判断
      System.out.println(predicate.negate().test(2)); // 反向判断
      
  • 实例

    import java.util.function.Consumer;
    import java.util.function.Function;
    import java.util.function.Predicate;
    import java.util.function.Supplier;public class FuncDEMO {public static void main(String[] args) {// 定义数字提供函数Supplier<String> supplier = () -> "42";// 定义偶数断言Predicate<Integer> predicate = (t) -> t % 2 == 0;// 转换器,字符串转数字Function<String, Integer> func = Integer::parseInt;// 消费者,打印数字Consumer<Integer> consumer = System.out::println;Myfunc(predicate, func, supplier, consumer);Myfunc((t) -> t % 2 == 0, Integer::parseInt, () -> "43", System.out::println);}private static void Myfunc(Predicate<Integer> predicate, Function<String, Integer> func, Supplier<String> supplier, Consumer<Integer> consumer) {if (predicate.test(func.apply(supplier.get()))) {consumer.accept(func.apply(supplier.get()));} else {System.out.println("不是偶数");}}
    }
    • 简单示例,是函数式接口常用场景
http://www.dtcms.com/wzjs/568002.html

相关文章:

  • 漂亮全屏网站专业微网站营销
  • 网站建设的基本条件公司logo设计生成器
  • 站群子网站开发备案网站可以做论坛么
  • app 网站运营ppt简洁 手机 导航网站模板下载安装
  • 网页设计软件列表点击查看seo和sem的关系为负关系
  • 网站站内优化怎么做网站盈利了
  • 大学两学一做专题网站容桂免费网站建设公司
  • 免费做字体的网站wordpress 调用 函数
  • 外贸soho自己建站wordpress 雷锋模板
  • 网站建站主题开发php网站开发
  • 信息技术网站开发建设网站要求有哪些
  • 青岛百度网站排名网站建设开发图片
  • 建设创意网站有字库wordpress
  • 苏州做网站的企业百度云登陆首页
  • 网站维护 英语wordpress实时刷新模块
  • 在线音乐制作网站自考软件开发工具
  • 网站搭建策略与方法有哪些方面天眼企业查询系统
  • 做特价网站wordpress秒开
  • 天津哪家制作网站好模板制作视频
  • seo网站关键词排名优化网站建设中所需条件
  • 自己有个服务器 怎样做网站男科医院网站建设策略
  • 链接关系 网站层次结构人和动物做的电影网站
  • 如何用域名进网站网站除了做流量还需要什么软件
  • 当当网网站建设需求分析怎么检查网站有没有被挂马
  • 张家港百度网站推广网站建设属于什么行业分类
  • 公司免费网站成都网站营销seo电话
  • 专业网站建设代理商重庆沙坪坝火车站
  • 达州住房和城乡建设厅网站php网站开发周期多长
  • dede 网站版权信息网站备案花钱吗
  • 成都高端网站建设网站开发及维护合同范本