java - 查找数组中最接近的较高和较低数字

标签 java arrays sorting compare

嘿哟,

我实际上正在尝试实现一个以整数作为输入的函数。 我还有一个上升整数数组。

现在我尝试找到最接近我的单个整数的较低和最高的数字。

我想将其作为数组返回,但我只找到了一种解决方案来找到与给定输入最接近的数字。

public int getClosestTimeValue(int time) {
int nearest = -1;
int bestDistanceFoundYet = Integer.getInteger(null);
int[] array = null;     
// We iterate on the array...
for (int i = 0; i < array.length; i++) {
     // if we found the desired number, we return it.
if (array[i] == time) {
    return array[i];
    } else {
        int d = Math.abs(time - array[i]);
if (d < bestDistanceFoundYet) {
    nearest = array[i];
}
    }
}
    return nearest;
}

有谁知道如何用java解决这个问题吗?

谢谢你,卢卡斯

最佳答案

如果不需要直接使用数组,那么可以使用 NavigableSet以及天花板()/地板()方法来获取集合中最近的较大/较小元素。示例:

NavigableSet<Integer> values = new TreeSet<Integer>();
for (int x : array) { values.add(x); }
int lower = values.floor(time);
int higher = values.ceiling(time);

如果您需要使用数组(家庭作业?),那么请找到有关二分搜索的良好引用。

关于java - 查找数组中最接近的较高和较低数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24118437/

相关文章:

java - SQLite 两张表,一张有效,另一张无效

javascript使递归数组遍历并更新一些内部值(指针)

javascript - 在 Javascript 中对日/月数组进行排序

JavaScript 按日期排序

r - 使用水平因子给我 NA

java - 无法解析 : com. android.support.test.espresso :espresso-intents:27. 0.2

java - 使用单个流读取目录中的所有目标文件

java - 当 transactionManager 没有被命名为 "transactionManager"

java - Java中字节数组的内存使用

php多维数组获取值