gpt4 book ai didi

java - 在 ArrayList 中移动项目

转载 作者:IT老高 更新时间:2023-10-28 13:51:16 26 4
gpt4 key购买 nike

我一直在玩ArrayLists。我想要实现的是一种方法来做这样的事情:

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

我正在努力解决的部分是“向上移动”部分。非常感谢任何有关如何实现此目的的提示或代码示例。

最佳答案

我在寻找答案时遇到了这个老问题,我想我会发布我找到的解决方案,以防其他人经过这里寻找相同的解决方案。

对于交换 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

这是一个引述,但也请自己去阅读全文:

Note that this method can usefully be applied to sublists to move one or more elements within a list while preserving the order of the remaining elements. For example, the following idiom moves the element at index j forward to position k (which must be greater than or equal to j):

Collections.rotate(list.subList(j, k+1), -1);

关于java - 在 ArrayList 中移动项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4938626/

26 4 0