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

新手上路,请多包涵

例如:一个列表

ABCDE

给定 C ,切换到

CABDE

请注意,数组大小会发生变化,某些项目可能会在运行时被删除

Collections.swap(url, url.indexOf(itemToMove), 0);

此语句不起作用,因为它输出 CBADE 而不是 CABDE ,如何解决?

谢谢。

原文由 user782104 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 468
2 个回答

您想要的是 ArrayList 中的一个非常昂贵的操作。它需要将列表开头和 C 的位置之间的每个元素向下移动一个。

但是,如果您真的想这样做:

 int index = url.indexOf(itemToMove);
url.remove(index);
url.add(0, itemToMove);

如果这对您来说是一个频繁的操作,并且随机访问的频率相当低,您可以考虑切换到另一个 List 实现,例如 LinkedList 。如果您非常在意元素的顺序,您还应该考虑列表是否是正确的数据结构。

原文由 Chris Hayes 发布,翻译遵循 CC BY-SA 3.0 许可协议

做这个:

  1. 从列表中 删除 元素: ArraylistObj.remove(object);
  2. 将元素 添加 特定位置 的列表: ArrayListObj.add(position, Object);

根据你的代码使用这个:

 url.remove("C");
url.add(0,"C");

原文由 Venkata Krishna 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏