lambda表达式练习 1.判断一个数是否是偶数 2.判断一个数是否是质数 3.给定n,计算1到n的累加和
时间: 2024-09-25 20:09:50 浏览: 110
Stream、Lambda表达式练习.doc
Lambda表达式是一种简洁的函数定义方式,在Java 8及以上版本中引入,它常用于函数式编程和集合操作。以下是使用lambda表达式解决你提到的问题:
1. 判断一个数是否是偶数:
```java
import java.util.function.Predicate; // 导入Predicate接口
public class Main {
public static void main(String[] args) {
Predicate<Integer> isEven = n -> n % 2 == 0;
System.out.println(isEven.test(4)); // 输出 true
System.out.println(isEven.test(5)); // 输出 false
}
}
```
这里定义了一个接受整数并返回布尔值的`isEven`函数,表示是否是偶数。
2. 判断一个数是否是质数:
```java
import java.util.function.UnaryOperator; // 导入UnaryOperator接口
public class Main {
public static void main(String[] args) {
UnaryOperator<Integer> isPrime = n -> n > 1 && !existsDivisor(n);
boolean primeFive = isPrime.apply(5); // 输出 true
boolean primeSix = isPrime.apply(6); // 输出 false
}
private static boolean existsDivisor(int num) {
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) return true;
}
return false;
}
}
```
这里定义了一个检查是否有除数的`isPrime`函数,如果能整除就不是质数。
3. 给定n,计算1到n的累加和:
```java
import java.util.stream.IntStream; // 导入IntStream流处理
public class Main {
public static void main(String[] args) {
int n = 5;
long sum = IntStream.rangeClosed(1, n).sum();
System.out.println("1 to " + n + " 的累加和为:" + sum); // 输出 15
}
}
```
这里使用`IntStream`范围闭包和`sum`方法计算1到n的和。
阅读全文