例如:一个列表
A B C D E
给定 C ,切换到
C A B D E
注意数组大小会改变,一些项目可能会在运行时删除
Collections.swap(url, url.indexOf(itemToMove), 0);
此语句不起作用,因为它输出 C B A D E 而不是 C A B D E ,如何解决?
谢谢。
最佳答案
您想要的是在 ArrayList
中执行非常昂贵的操作。它需要将列表开头和 C
位置之间的每个元素向下移动一个。
但是,如果你真的想这样做:
int index = url.indexOf(itemToMove);
url.remove(index);
url.add(0, itemToMove);
如果这对您来说是一个频繁的操作,并且随机访问的频率较低,您可以考虑切换到另一个 List
实现,例如 LinkedList
。如果您非常关心元素的顺序,您还应该考虑列表是否是正确的数据结构。
关于java - 如何将数组列表中的特定项目移动到第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20186681/