How to move specific item in array list to the first item
What you want is a very expensive operation in an ArrayList
. It requires shifting every element between the beginning of the list and the location of C
down by one.
However, if you really want to do it:
int index = url.indexOf(itemToMove);url.remove(index);url.add(0, itemToMove);
If this is a frequent operation for you, and random access is rather less frequent, you might consider switching to another List
implementation such as LinkedList
. You should also consider whether a list is the right data structure at all if you're so concerned about the order of elements.
Do this:
- Remove the element from the list:
ArraylistObj.remove(object);
- Add the element back to the list at specific position:
ArrayListObj.add(position, Object);
As per your code use this :
url.remove("C");url.add(0,"C");
Another solution, just keep swaping from 0
to indexOf(itemToMove)
.
This is my Kotlin version:
val list = mutableListOf('A', 'B', 'C', 'D', 'E')(0..list.indexOf('C')).forEach { Collections.swap(list, 0, it)}
Sorry I am unfamiliar with Java but learned a little Kotlin. But the algorithm is the same.