Здравствуйте!
Есть PriorityBlockingQueue, в нем 40 объектов типа Client(по сути игрок). У каждого такого объекта есть его позиция в мире, которая задается при помощи Vector3D. Если быть точнее, то:
org.apache.commons.math3.geometry.euclidean.threed.Vector3D
Нужно вытащить из очереди сразу 2 игрока с самой маленькой дистанцией между ними.
Помогите дописать код:
public class TankDistanceComparator implements Comparator<Client> {
@Override
public int compare(Client o1, Client o2) {
/*Имплементация getPosition упущена за ненадобностью.*/
Vector3D o1p = getPosition(o1);
Vector3D o2p = getPosition(o2);
double distance = o1p.distance(o2p);
/*Что тут нужно сделать?*/
return 0;
}
}
Да и как потом выбрать из очереди 2 элемента и более, например 10 игроков?
Как реализовать, подскажите, плиз.. Заранее спасибо!