当前位置: 首页 > 知识库问答 >
问题:

Java:在数组列表中查找最接近特定负数的值

颜高格
2023-03-14

我的问题是如何编写一个方法,它将Double的ArrayList作为参数,并返回数组列表中最接近-3.75的Double。

public static double question3(ArrayList<Double> input) {

    double myNum = 3.42.;
    double dist = Double.POSITIVE_INFINITY;
    double closest = 0.0;

    for (Double s : input) {
        if (Math.abs(Math.abs(s) - myNum) < dist) {
            dist = Math.abs(Math.abs(s) - myNum);
            closest = s;
        }
    }
    System.out.println(closest);
    return closest;
}

有人帮忙吗?还是更好的执行任务的方法?

共有1个答案

苏富
2023-03-14

如果您的明确目标不是重新发明轮子,则可以将streammin与自定义比较器一起使用:

public double findClosestTo(ArrayList<Double> arr, double value) {
  return arr.stream().min(
    Comparator.<Double>comparingDouble(x -> Math.abs(x - value))
  ).get();
}

如果数组为空,get部分(来自optional)将抛出错误。

 类似资料:
  • 问题内容: 是否有numpy-thonic方法(例如函数)在数组中查找最接近的值? 例: 问题答案:

  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数:

  • 问题内容: 我想知道是否有可能找到一个最接近的元素的元素 ,是不是 在那里。 例如,如果我们具有[1,3,6,7]值,并且正在寻找最接近4的元素,则它应返回3,因为3是数组中的最大数字,小于4。 我希望这是有道理的,因为英语不是我的母语。 问题答案: 如果数组已排序,则可以在以下位置进行修改的二进制搜索:

  • 问题内容: 我希望能够在数字数组中找到最接近的较小值。例如,如果我有: 我正在寻找小于以下值的最接近值: 该函数将返回: 另外,如果我传递的数字大于数组中的最大值,则它应返回最大值。如果我传递的数字小于最小值,则应返回nil。 我尝试使用数组上的函数执行此操作,但是单独执行此操作不会产生我想要的结果,因为我需要这样的东西: 但不幸的是,这是无效的。有什么建议?我知道可以使用while循环轻松完成此

  • 我正在尝试写一个程序,用户将把数字,我需要得到最接近的数字平均值。 那我就试着这么做; 我的问题是,当我输入数字1 12 17 23 62时,平均值是正确的:23.0,但输出是这样的: 为什么62号后不传递给else if语句? 多谢 所有代码

  • 问题内容: 在Java中,应该如何找到数组元素与特定值K最接近(或相等)的和? 例如,对于数组{19,23,41,5,40,36}和K = 44,最接近的可能和是23 + 19 = 42。我已经为此奋斗了好几个小时。我对动态编程几乎一无所知。顺便说一下,数组仅包含正数。 问题答案: 对于这种问题,通常将使用动态编程。但是,本质上可以归结为保留一组可能的总和,然后将输入值一个接一个地添加,如以下代码