我一直在玩 ArrayList
s。我想要实现的是一种方法来做这样的事情:
Item 1
Item 2
Item 3
Item 4
我正在尝试能够在列表中向上移动项目,除非它已经在顶部,在这种情况下它将保持不变。例如,如果第 3 项被移动,列表将是:
Item 1
Item 3
Item 2
Item 4
从我目前的小理解来看,我想要的是:
IF arrayname index is not equal to 0
THEN move up
ELSE do nothing
我正在努力的部分是“向上移动”部分。非常感谢有关如何实现这一目标的任何提示或代码示例。
原文由 user319940 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在寻找答案时遇到了这个老问题,我想我会发布我找到的解决方案,以防其他人经过这里寻找相同的解决方案。
对于交换 2 个元素,Collections.swap 很好。但是如果我们想移动更多元素,有一个更好的解决方案,涉及创造性地使用 Collections.sublist 和 Collections.rotate,直到我在这里看到它描述之前我没有想到:
http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#rotate%28java.util.List,%20int%29
这是引述,但你也可以去那里自己阅读整篇文章: