Search code examples
javaarraysidioms

How do I reverse an int array in Java?


I am trying to reverse an int array in Java.

This method does not reverse the array.

for(int i = 0; i < validData.length; i++)
{
    int temp = validData[i];
    validData[i] = validData[validData.length - i - 1];
    validData[validData.length - i - 1] = temp;
}

What is wrong with it?


Solution

  • To reverse an int array, you swap items up until you reach the midpoint, like this:

    for(int i = 0; i < validData.length / 2; i++)
    {
        int temp = validData[i];
        validData[i] = validData[validData.length - i - 1];
        validData[validData.length - i - 1] = temp;
    }
    

    The way you are doing it, you swap each element twice, so the result is the same as the initial list.