[ad_1]
こんにちは、このメソッドでは、指定された場所に最も近い利用可能な人を返します。指定された場所に複数の人が最も近い場合は、より低い ID を持つ人を返そうとしています。 (メソッド person.getIdentity() で個人 ID を呼び出すことができます。)しかし、これを行う方法がわかりません。 これが今までの私の方法です。
私が試したこと:
Java
<pre>public Person findNearestAvailable(int location) { Iterator<Person> it = persons.iterator(); int nearestDistance = Integer.MAX_VALUE; Person nearestAssistant = null; while(it.hasNext()) // checks all persons { Person person = it.next(); if(person.isAvailable()) //but only the availalble ones { int distance = location - person.getLocation(); if(distance < nearestDistance){ nearestDistance = distance; nearestPerson = person; } } } return nearestPerson; }
解決策 1
同じ距離にいる最後の人への参照を保持します。より近い人を見つけるたびに、その人に設定します。 同じ距離の別の ID を見つけたら、ID を比較して最小のものに設定します。
ループの後、距離が最小になり、ID が最も低くなります。
[ad_2]
コメント