我编写了两种方法来查找数组中的最小和最大 int,但它们几乎相同,所以我觉得应该有某种方法来简化它,也许作为一种方法?
private int findMin(){
int min = arr[0];
for(int num : arr){
if(num<min) {
min = num;
}
}
return min;
}
private int findMax(){
int max = arr[0];
for(int num : arr){
if(num>max){
max = num;
}
}
return max;
}
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决此类问题,所以我很想看看您的回复!
虽然关于如何将算术运算符传递给方法的问题和关于如何获取 Java 8 流的最小值和最大值的问题回答了文字编程问题,但我的问题是在更基本的层面上关于如何解决以下问题:做类似事情的方法,以及一般比较数组的方法。这篇文章的答案对我来说比这些问题的答案更有帮助。
换句话说,是否保证以下行打印num线?
int num = list.stream().peek(System.out::println).count();
Run Code Online (Sandbox Code Playgroud)
这个问题是由/sf/answers/2894261051/的评论中的讨论引发的
我依稀记得一个讨论,即避免迭代的优化可能是合法的,但在快速搜索期间没有找到任何结论.
Stream.count的JavaDocs包含以下语句:
这是减少的特殊情况,相当于:
return mapToLong(e -> 1L).sum();
但我不确定这是否能提供任何保证,如果流可以某种方式以短路的方式确定结果.