一、Lambda表达式
Java 8引入了Lambda表达式,使得Java更具有函数式编程的特性。Lambda表达式允许将函数作为一等公民使用。
Lambda表达式的基本语法:
(parameters) -> expression
或
(parameters) -> { statements; }
Lambda表达式可以简化代码,例如:
Runnable r = () -> System.out.println("Hello World");
r.run();
这段代码可以被简化为:
new Thread(() -> System.out.println("Hello World")).start();
Lambda表达式最常见的用法是作为集合的过滤器或转换器,例如:
List<String> names = Arrays.asList("John", "Jane", "Mary", "Andy");
names.stream()
.filter(name -> name.startsWith("J"))
.map(String::toUpperCase)
.sorted()
.forEach(System.out::println);
二、Optional类型
Optional是一个容器类,用于表示一个值存在或不存在。使用Optional可以避免NullPointerException。
Optional的基本用法:
Optional<T> optional = Optional.of(value); //存在 Optional<T> optional = Optional.empty(); //不存在
Optional可以与流一起使用,例如:
List<String> names = Arrays.asList("John", null, "Mary");
names.stream()
.map(Optional::ofNullable)
.flatMap(name -> name.map(Stream::of).orElseGet(Stream::empty))
.forEach(System.out::println);
三、Stream流
Stream是Java 8中新增的API,用于处理集合数据。Stream使得对数据的处理更加简洁、高效。
Stream的基本用法:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4); Integer sum = numbers.stream() .filter(n -> n % 2 == 0) .map(n -> n * 2) .reduce(0, Integer::sum);
Stream的操作分为中间操作和终止操作,中间操作会返回新的Stream对象,终止操作会返回一个非Stream类型的对象,例如上述代码中的reduce操作。
四、接口的默认方法
Java 8允许在接口中定义默认方法,这样实现该接口的所有类都会具有这个方法的实现。
默认方法可以在接口的演变中保持二进制兼容性,并且可以方便地为现有接口添加新的方法,例如:
public interface MyInterface {
void methodA();
default void methodB() {
System.out.println("This is a default method");
}
}
public class MyClass implements MyInterface {
public void methodA() {
System.out.println("This is method A");
}
}
MyInterface myInterface = new MyClass();
myInterface.methodA(); //输出"This is method A"
myInterface.methodB(); //输出"This is a default method"
原创文章,作者:QAQT,如若转载,请注明出处:https://www.506064.com/n/139296.html