Reverse elements in array

This example will show how to reverse the order of a given array using straight up java and apache commons ArrayUtils.reverse. This could also be accomplished by sorting the array in reverse order

Setup

String[] MONTHS_OF_YEAR_BACKWARDS;

@Before
public void setUp () {
    MONTHS_OF_YEAR_BACKWARDS = new String[] {
            "December",
            "November",
            "October",
            "September",
            "August",
            "July",
            "June",
            "May",
            "April",
            "March",
            "February",
            "January"
    };
}

Straight up Java

@Test
public void reverse_elements_in_array_with_java () {

    for (int i=0; i < MONTHS_OF_YEAR_BACKWARDS.length / 2; i++) {

        // set a temp variable for current element
        String temp = MONTHS_OF_YEAR_BACKWARDS[i];

        // find the last element - 1
        int j = MONTHS_OF_YEAR_BACKWARDS.length - i - 1;

        // set the first element to last
        MONTHS_OF_YEAR_BACKWARDS[i] = MONTHS_OF_YEAR_BACKWARDS[j];

        // set last to the first
        MONTHS_OF_YEAR_BACKWARDS[j] = temp;
    }

    logger.info(Arrays.toString(MONTHS_OF_YEAR_BACKWARDS));

    assertEquals("May", MONTHS_OF_YEAR_BACKWARDS[4]);
}

Output

[January, February, March, April, May, June, July, August, September, October, November, December]

Apache Commons

@Test
public void reverse_elements_in_array_with_apache_commons () {

    ArrayUtils.reverse(MONTHS_OF_YEAR_BACKWARDS);

    logger.info(Arrays.toString(MONTHS_OF_YEAR_BACKWARDS));

    assertEquals("May", MONTHS_OF_YEAR_BACKWARDS[4]);
}

Output

[January, February, March, April, May, June, July, August, September, October, November, December]