如何使用 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 次浏览

开启你的 职业生涯

完成课程以获得认证

开始吧
广告