У меня есть что-то вроде этого:Java- переупорядочивая приоритет элементов в списке
public class TestItem {
double priority;
String name;
String phoneNumber;
//getter setters
.
.
.
//action
public void moveOrder(TestItem before, TestItem after) {
}
}
Я хотел реализовать переназначения моего списка путем перетаскивания списка между нужными деталями. Предполагая, что это мой список.
TestItem 1 (priority = 1)
TestItem 2 (priority = 2)
TestItem 3 (priority = 3)
TestItem 4 (priority = 4)
TestItem 5 (priority = 5)
Если я хочу, чтобы переместить TestItem 4 в диапазоне от 1 до 2, она будет так:
TestItem 1 (priority = 1)
TestItem 4 (priority = 1.5)
TestItem 2 (priority = 2)
TestItem 3 (priority = 3)
TestItem 5 (priority = 5)
TestItem 4 в порядок в среднем на 1 и 2. Моя проблема когда я продолжайте переупорядочивать, стоимость заказа становится меньше.
У меня еще нет идеи относительно того, как исправить каждый раз, когда он достигает чего-то значения. Возможно, мне нужно снова вернуть весь список? Есть ли ссылка на что-то подобное?
Любое предложение или ссылки приветствуются.
Вы читали о 'Collections.sort()' с помощью 'Comparator'? https://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#sort%28java.util.List,%20java.util.Comparator%29 – vikingsteve
Что вы подразумеваете под " значение порядка становится меньше "и" как исправить, когда он достигает чего-то значения "? Неясно, что «неправильно» о том, что вы описываете. –
Когда последний элемент будет перемещен в цикле в позицию 1 (индекс на основе 0), приоритеты будут 1.5, 1.25, 1.125, ... и вскоре он достигнет проблемы с точностью ... – Betlista