嗨,大家好,我想知道是否有可能在arraylist中找到最接近的值,这会返回更高的值。Java - 在数组列表中找到最接近的值(更高)
示例:[3,7,12,19]的数组列表如果我的值是8,我怎样才能得到最接近(较大)的值12?
嗨,大家好,谢谢你的回复,我要求逻辑或理解,请不要误解我在等待答案!我试过这个功能,但我想要的是获得更接近的更高(更大)的值。这只是给我最接近但不是最大的最接近的价值
public int nearestValue(int value, ArrayList<Integer>List)
{
int lo = 0;
int hi = List.size()-1;
int lastValue = 0;
while(lo <= hi)
{
int mid = (lo + hi) /2;
lastValue = List.get(mid);
if (value < lastValue)
{
hi = mid - 1;
}
else if (value > lastValue)
{
lo = mid + 1;
}
else
{
return lastValue;
}
}
return lastValue;
}
看'Arrays.binarySearch' – Eran
是的,这是可能的。 *你*尝试过什么? –
堆栈不是资源,您可以在其中请求完成您的工作。自己尝试一下,放入代码并写入,白色会出错。 – TEXHIK