Ermittelt den nächsten Wert zu einer Zahl im Array

Ich habe eine Reihe von positiven / negativen Ints

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;

Jetzt möchte ich ein anderes int anhand dieses Arrays testen und die Zahl zurückgeben, die dem int am nächsten ist.

Zum Beispiel, wenn ich die Nummer benutzt habe490 Ich würde Punkt 4 von Zahlen zurückbekommen500 Was ist der beste Weg, um so etwas zu tun?

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];

Das geht nicht Irgendwelche Vorschläge für eine gute Methode, um dies zu tun?

Antworten auf die Frage(11)

Ihre Antwort auf die Frage