【发布时间】:2016-03-14 10:08:04
【问题描述】:
我有这样的事情:
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)
如果我想在 1 和 2 之间移动 TestItem 4,它会变成这样:
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吗? docs.oracle.com/javase/6/docs/api/java/util/… -
你说的“订单价值变小”和“当它达到某个值时如何纠正”是什么意思?目前尚不清楚您所描述的内容是“不正确”的。
-
当最后一项将在循环中移动到位置 1(从 0 开始的索引)时,优先级将是 1.5、1.25、1.125,... 很快就会精确地解决问题。 ..
-
是的,我就是这个意思。
标签: java reorderlist