作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图返回字符串中以空格分隔的数字的最大值和最小值。这是我到目前为止所拥有的:
public static String HighAndLow(String numbers) {
List<Integer> nums = Arrays.asList(numbers.split(" ")).stream()
.map(s -> Integer.parseInt(s))
.collect(Collectors.toList());
int max = nums.stream().reduce((a, b) -> a > b ? a : b);
int min = nums.stream().reduce((a, b) -> a < b ? a : b);
return max + " " + min;
}
但是该代码不会编译,而是返回”
error: incompatible types: Optional<Integer> cannot be converted to int
我不明白...我的代码中的什么是将整数/字符串转换为可选? map 是否默认执行此操作,或者它是我编码方式所独有的?我尝试做另一个映射来调用可选的 get 方法,但这似乎也不起作用。
最佳答案
您不需要使用reduce
操作两次以获得最小值和最大值。只需使用 IntSummaryStatistics
上List<Integer>
并得到Max
和Min
从这个统计数据中摆脱处理 Optional
public static String HighAndLow(String numbers) {
IntSummaryStatistics stats = Arrays.stream(numbers.split(" "))
.mapToInt(Integer::parseInt)
.summaryStatistics();
return stats.getMax() + " " + stats.getMin();
}
IntSummaryStatistics
为您提供除 max
之外的更多结果和min
IntSummaryStatistics{count=10, sum=129, min=2, average=12.900000, max=29}
关于java - 我的整数列表在哪里变成了可选<Integer>列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55822226/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!