Java函数编程是指使用函数作为参数,或使用函数作为返回值的编程方法。
一、Lambda表达式
Java8引入了Lambda表达式,可以使用函数作为方法参数或返回值。Lambda表达式也可视为匿名函数。
() -> System.out.println("Hello Lambda!")
上述Lambda表达式等同于以下匿名类。
new Thread(new Runnable() { @Override public void run() { System.out.println("Hello Lambda!"); } }).start();
二、方法引用
方法引用是Java8的另一个重要特征,即直接引用现有方法。它可以大大提高代码的可读性和简洁性。
Listlist = Arrays.asList("Java", "C++", "Python", "JavaScript"); list.forEach(System.out::println);
上述代码就使用了方法引用,System.out::println等价于item -> System.out.println(item)。
三、函数式接口
通过@FunctionalInterface注释,函数接口是一个只有一种抽象方法的接口。在Java8中,可以通过函数接口接收Lambda表达式和方法引用。
@FunctionalInterface public interface MyInterface { void doSomething(); }
这个接口可以通过Lambda来实现。
MyInterface myInterface = () -> System.out.println("Do something"); myInterface.doSomething(); // 输出:Do something
四、流
流(Stream)它是Java8中的一个重要概念,指的是在操作集合时,不是直接操作集合,而是计算流量操作,使操作更容易理解,效率更高。
Listwords = Arrays.asList("Java", "C++", "Python", "JavaScript"); long count = words.stream().filter(w -> w.length() > 2).count(); System.out.println(count); // 输出:4
首先创建了一个流,然后对流进行过滤和计数。
本文链接:https://my.lmcjl.com/post/15413.html
展开阅读全文
4 评论