java - 如何将数组列表中的特定项目移动到第一项

标签 java android collections arraylist swap

例如:一个列表

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/

相关文章:

java未经检查的转换

java - 使用 Java 应用程序实现 GUI

android - BroadcastReceiver 不会使用自定义进程名称触发

java - 无法将数据插入数据库 - android

scala - 合并集合操作

java - 集合作为现实世界容器的隐喻

java - 在 Linux Fedora Hyper-V 虚拟机上独立启动 HBase 时出错

java - 在处理中创建可扩展的噪声模式

android - 如何在工具栏上隐藏 NavigationIcon

java - 为什么 Java 中的 PriorityQueue 不能有 initialCapacity 0?