Arrays.stream对数组前i取最大值
时间: 2024-05-09 20:16:42 浏览: 57
判断数组的最大值
3星 · 编辑精心推荐
可以使用Java 8中的Arrays.stream方法和IntStream.rangeClosed方法来实现对数组前i个元素取最大值的操作。代码示例如下:
```java
int[] arr = {10, 5, 8, 3, 6};
int i = 3; // 取前3个元素
int max = Arrays.stream(Arrays.copyOfRange(arr, 0, i))
.max()
.orElse(0); // 如果数组为空,返回0
System.out.println("前" + i + "个元素的最大值为:" + max);
```
解释一下代码:
- 首先,使用Arrays.copyOfRange方法截取数组的前i个元素,并将截取后的数组转换为IntStream类型。
- 然后,使用IntStream.max方法获取该流中的最大值。
- 最后,使用Optional.orElse方法指定如果数组为空时的默认返回值。
运行代码,输出结果为:
```
前3个元素的最大值为:10
```
这里假设数组中至少有i个元素。如果数组中不足i个元素,将会返回截取后的所有元素的最大值。
阅读全文