gpt4 book ai didi

java - 在参数范围内查找函数最小值

转载 作者:行者123 更新时间:2023-11-30 06:12:10 25 4
gpt4 key购买 nike

假设我有:

int x = 5;
int y = 10;

和一个带有签名的函数

public double CalculateEntropySplittingOnFeature(List<Sample> samples, int cutOffPoint) 

我想找出 5 到 0 之间的哪个整数值包含在我的函数返回的最小值中。我的解决方案:

((List <Integer>) IntStream.range(x, y))
.stream()
.min(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return Double.compare(CalculateEntropySplittingOnFeature(samples, o2), CalculateEntropySplittingOnFeature(samples, o1));
}
});

但是,我觉得有比生成 IntStream 并将其转换为列表然后再次流式传输更好/更优雅(/高效)的解决方案...有什么建议吗?

最佳答案

((List <Integer>) IntStream.range(x, y))会抛出 ClassCastException , 因为 IntStream不执行 List<Integer> .

使用

IntStream.range(x, y).boxed()

得到 Stream<Integer> .

编辑:

Optional<Integer> min =
IntStream.range(x, y)
.boxed ()
.min ((o1,o2)->Double.compare(CalculateEntropySplittingOnFeature(samples, o2),
CalculateEntropySplittingOnFeature(samples, o1)));

关于java - 在参数范围内查找函数最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33236079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com