получить ближайшее значение к числу в массиве
У меня есть массив положительных / отрицательных целых
int[] numbers = new int[10];
numbers[0] = 100;
numbers[1] = -34200;
numbers[2] = 3040;
numbers[3] = 400433;
numbers[4] = 500;
numbers[5] = -100;
numbers[6] = -200;
numbers[7] = 532;
numbers[8] = 6584;
numbers[9] = -945;
Теперь я хотел бы проверить еще одно int с этим массивом и вернуть число, которое ближе всего к int.
Например, если я использовал номер490
я бы вернул пункт № 4 из чисел500
Каков наилучший способ сделать что-то подобное?
int myNumber = 490;
int distance = 0;
int idx = 0;
for(int c = 0; c < numbers.length; c++){
int cdistance = numbers[c] - myNumber;
if(cdistance < distance){
idx = c;
distance = cdistance;
}
}
int theNumber = numbers[idx];
Это не работает Любые предложения по хорошему способу сделать это?