BinaryOperator 接口的用法示例+BiFunction

轉自http://www.tpyyes.com/a/java/2017/1015/285.htmlhtml

轉自https://blog.csdn.net/u014331288/article/details/76319219java

java Function函數中的BinaryOperator<T>接口用於執行lambda表達式並返回一個T類型的返回值,下面的BinaryOperator用法示例讓你簡單瞭解一下。app

import java.util.function.BinaryOperator;
public class TestDemo {
    public static void main(String[] args) {
       BinaryOperator<Integer> add = (n1, n2) -> n1 + n2;
       //apply方法用於接收參數,並返回BinaryOperator中的Integer類型
       System.out.println(add.apply(3, 4));
    }
}

返回結果爲:7ide

固然了,也能夠用來操做字符串的lambda表達式,以下。函數

public class TestDemo {
    public static void main(String[] args) {
       BinaryOperator<String> addStr = (n1, n2) -> n1 +"==="+ n2;
       //apply方法用於接收參數,並返回BinaryOperator中的String類型
       System.out.println(addStr.apply("3", "4"));
    }
}

返回結果就是字符串:3==4學習

BinaryOperator<T>中有兩個靜態方法,是用於比較兩個數字或字符串的大小。this

//獲取更小的值
static <T> BinaryOperator<T> minBy(Comparator<? super T> comparator)
//獲取更大的值
static <T> BinaryOperator<T> maxBy(Comparator<? super T> comparator)

下面用小案例來學習下這兩個靜態方法的使用。url

minBy方法使用:spa

import java.util.Comparator;
import java.util.function.BinaryOperator;

public class TestDemo {
   public static void main(String[] args) {
      BinaryOperator<Integer> bi = BinaryOperator.minBy(Comparator.naturalOrder());
      System.out.println(bi.apply(2, 3));
   }
}

返回結果爲:2.net

maxBy方法使用:

public class TestDemo {
   public static void main(String[] args) {
      BinaryOperator<Integer> bi = BinaryOperator.minBy(Comparator.naturalOrder());
      System.out.println(bi.apply(2, 3));
   }
}
————————————————————————————————————————————————————————持續精進-之BiFunction————————————————————————————————————————————————————————————————————

若是你正在瀏覽Java8的API,你會發現java.util.function中 Function, Supplier, Consumer, Predicate和其餘函數式接口普遍用在支持lambda表達式的API中。這些接口有一個抽象方法,會被lambda表達式的定義所覆蓋。

@FunctionalInterface public interface BiFunction<T, U, R> { /** * Applies this function to the given arguments. * * @param t the first function argument * @param u the second function argument * @return the function result */ R apply(T t, U u);
View Code

BiFunction 接受兩個參數 返回一個結果

實戰: 求兩個數的 四則運算

public static Integer getSum(Integer a, Integer b, BiFunction<Integer, Integer, Integer> biFunction) { return biFunction.apply(a, b); } public static void main(String[] args) { System.out.println(getSum(1,2,(a,b)->a+b)); System.out.println(getSum(1,2,(a,b)->a-b)); System.out.println(getSum(1,2,(a,b)->a*b)); System.out.println(getSum(2,2,(a,b)->a/b)); }
View Code
相關文章
相關標籤/搜索