使用Lambda表达式实现calculate()方法,使该方法可以计算(a+b)/2
时间: 2024-05-12 07:15:49 浏览: 10
可以使用Lambda表达式来实现calculate()方法,代码如下:
```java
public static double calculate(double a, double b) {
return ((a + b) / 2);
}
// 使用Lambda表达式实现
Calculate calculate = (a, b) -> ((a + b) / 2);
```
其中,Calculate是一个函数式接口,定义如下:
```java
@FunctionalInterface
public interface Calculate {
double calculate(double a, double b);
}
```
Lambda表达式的语法为:
```java
(参数列表) -> 表达式
```
在这个例子中,参数列表为 `(a, b)`,表达式为 `((a + b) / 2)`,所以我们可以使用 Lambda 表达式实现 calculate() 方法。
相关问题
使用Lambda 表达式实现calculate () 方法,使该方法可以计算1/2(a+b)。
可以使用Lambda表达式和函数式接口来实现这个方法。示例代码如下:
```
public class Calculator {
public static void main(String[] args) {
calculate(10, 20, (a, b) -> (double) (a + b) / 2);
}
public static void calculate(int a, int b, CalculateInterface calculateInterface) {
double result = calculateInterface.calculate(a, b);
System.out.println(result);
}
}
interface CalculateInterface {
double calculate(int a, int b);
}
```
在这个示例中,我们定义了一个函数式接口`CalculateInterface`,它包含了一个`calculate()`方法,接受两个整数参数并返回一个双精度浮点数结果。
然后我们在`Calculator`类中定义了一个`calculate()`方法,它接受两个整数参数和一个`CalculateInterface`类型的函数式接口作为参数。在这个方法中,我们调用了传入的函数式接口的`calculate()`方法来计算1/2(a+b)的值,并将结果打印出来。
最后,在`main()`方法中,我们通过Lambda表达式实现了一个`CalculateInterface`接口的匿名实现类,用于计算1/2(a+b)的值,并将该实现作为参数传递给`calculate()`方法进行计算。
2. 修改教材P208页第10.12题,使用Lambda表达式实现calculate()方法,使该方法可以计算( a+b)/2
原题目:
定义一个函数式接口IntCalc,其中抽象方法int calculate(int a, int b),使用Lambda表达式求出两个整数的和、差、积和商(例如,加法运算a+b)。
修改后的题目:
定义一个函数式接口DoubleCalc,其中抽象方法double calculate(double a, double b),使用Lambda表达式求出两个实数的和、差、积和商(例如,计算平均数(a+b)/2)。
修改后的解答:
```java
public class LambdaDemo {
interface DoubleCalc {
double calculate(double a, double b);
}
public static void main(String[] args) {
DoubleCalc calc = (a, b) -> (a + b) / 2.0; // 使用Lambda表达式实现calculate方法
double a = 8.0, b = 4.0;
System.out.println("a = " + a + ", b = " + b);
System.out.println("平均数:" + calc.calculate(a, b));
}
}
```
输出结果:
```
a = 8.0, b = 4.0
平均数:6.0
```