如何實現 ToDoubleFunction使用 Java 中的 lambda 表示式?


ToDoubleFunction<T> 是在 java.util.function 包中定義的一個函式介面。此函式介面需要一個引數作為輸入,並生成一個double值的結果。它用作lambda 表示式 方法 引用的賦值目標。ToDoubleFunction<T> 介面只包含一個抽象方法,applyAsDouble()

語法

@FunctionalInterface
public interface ToDoubleFunction<T> {
   double applyAsDouble(T value);
}

示例 1

import java.util.function.ToDoubleFunction;

public class ToDoubleFunctionTest1 {
   public static void main(String args[]) {
      ToDoubleFunction<String> strLength = s -> s.length();    // lambda expression
      System.out.println("The length of a given String using lambda expression is: " + strLength.applyAsDouble("TutorialsPoint"));

      ToDoubleFunction<String> innerClassImplementation = new ToDoubleFunction<String>() {
         @Override // anonymous inner class
         public double applyAsDouble(String value) {
            return value.length();
         }
      };
      System.out.println("The length of a given string using anonymous inner class is: " + innerClassImplementation.applyAsDouble("Tutorix"));
   }
}

輸出

The length of a given String using lambda expression is: 14.0
The length of a given string using anonymous inner class is: 7.0


示例 2

import java.util.*;
import java.util.stream.*;
import java.util.function.ToDoubleFunction;

public class ToDoubleFunctionTest2 {
   public static void main(String[] args) {
      List<String> marksList = new ArrayList<String>();
      marksList.add("98");
      marksList.add("95");
      marksList.add("90");
      marksList.add("75");
      marksList.add("70");

      ToDoubleFunction<String> function = (String score) -> Double.valueOf(score); // lambda
      marksList.stream()
         .mapToDouble(function)
         .forEach(System.out::println);    // method reference
   }
}

輸出

98.0
95.0
90.0
75.0
70.0

更新於:13-Jul-2020

675 次瀏覽

開啟你的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.