如何使用 Java 中的方法引用來查詢集合中的最大值?


方法引用 提供了一種在lambda 表示式中引用方法而不執行該方法。它需要目標型別上下文,其中包含相容的函式 介面

語法

<Class-Name> :: <Static-Method-Name>

在下面的示例中,我們可以使用方法 引用找出 ArrayList 的最大值

示例

import java.util.*;

class MyClass {
   private int val;
   MyClass(int v) {
      val = v;
   }
   int getVal() {
      return val;
   }
}
public class MethodReferenceMaxValueTest {
   static int compareMaxValue(MyClass a, MyClass b) {
      return a.getVal() - b.getVal();
   }
   public static void main(String args[]) {
      ArrayList<MyClass> al = new ArrayList<MyClass>();
      al.add(new MyClass(10));
      al.add(new MyClass(30));
      al.add(new MyClass(25));
      al.add(new MyClass(15));
      al.add(new MyClass(40));
      al.add(new MyClass(35));
      MyClass maxValObj = Collections.max(al, MethodReferenceMaxValueTest :: compareMaxValue);
      System.out.println("Maximum value is: " + maxValObj.getVal());
   }
}

輸出

Maximum value is: 40

更新時間:11-Jul-2020

177 次瀏覽

開啟你的 職業生涯

完成課程以獲得認證

開始吧
廣告
© . All rights reserved.