tags:

views:

1046

answers:

1

What is the best way to rearrange elements in an list? I need the ability to move elements to move elements in the list, one step back or forward in the index. I was thinking of getting the index of the item, adding it at index -1 / +2 and removing the old reference.

Is there a faster way to handle rearranging without creating duplicates in the list in the process.

+12  A: 

Use the JDK's swap method

The JDK's Collections class contains a method just for this purpose called Collections.swap. According to the API documentation this method allows you to "swap the elements at the specified positions in the specified list."

I suggest this solution so that you don't have to remove elements from the List and so that you don't have to roll your own swap method. Also, it looks like this method has been around since the 1.4 release of Java so it should work for most of the modern JDKs.

Elijah
Doh. Didn't even see that. Deleting my answer...
Jon Skeet
I only remembered it because I was looking at it today for my project. It is in one of the dark corners of the JDK.
Elijah
Very cool, I don't think I've ever used that method either, but it definitely could come in handy.
Jeff Olson