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

2022-08-31 12:35:38

例如:列表

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 ,如何解决它?

谢谢。


答案 1

您想要的是.它需要将列表开头和向下位置之间的每个元素移一个。ArrayListC

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

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

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


答案 2

请执行下列操作:

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

根据您的代码,请使用此:

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