一、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/zh-hant/n/139296.html