Friday, March 22, 2013

How to Reverse Array in Java - Int and String Array Example

This Java tips is about, how to reverse array in Java, mostly primitive types e.g. int, long, double and String arrays. Despite of Java’s rich Collection API, use of array is quite common, but standard JDK doesn’t has great utility classes for Java. It’s difficult to convert between Java Collection e.g. List, Set to primitive arrays. Java’s array utility class java.util.Arrays, though offers some of critical functionalities like comparing arrays in Java and support to print arrays, It lacks lot of common features, such as combining two arrays and reverse primitive or object array.  Thankfully, Apache commons lang, an open source library from Apache software foundation offers one interesting class ArrayUtils, which can be used in conjunction with  java.util.Arrays class to play with both primitive and object array in Java. This API offers convenient overloaded method to reverse different kinds of array in Java e.g. int, double, float, log or Object arrays. On a similar note, you can also write your own utility method to reverse Array in Java, and this is even a good programming question. For production usage, I personally prefer tried and tested library methods instead of reinventing wheel. Apache commons lang fits the bill, as it offer other convenient API to complement JDK. In this Java tutorial, we will reverse int and String array in Java using ArrayUtils to show How to reverse primitive and object array in Java.


Reverse int and String array in Java - Example

Java program to reverse int and String array in Java with ExampleHere is the code example to reverse any array in Java. We have declared two arrays, iArray which is an int array and sArray which stores String objects. We have also included commons-lang-2.6.jar to use org.apache.commons.lang.ArrayUtils class to reverse Array in Java. As discussed in our last post How to print array element in Java, We are using Arrays.toString() to print content of array.

import java.util.Arrays;
import org.apache.commons.lang.ArrayUtils;

/**
 *
 * Java program to reverse array using Apache commons ArrayUtils class.
 * In this example we will reverse both int array and String array to
 * show how to reverse both primitive and object array in Java.
 *
 * @author
 */
public class ReverseArrayExample {

    public static void main(String args[]) {

        int[] iArray = new int[] {101,102,103,104,105};
        String[] sArray = new String[] {"one", "two", "three", "four", "five"};
       
       
        // reverse int array using Apache commons ArrayUtils.reverse() method
        System.out.println("Original int array : " + Arrays.toString(iArray));
        ArrayUtils.reverse(iArray);
        System.out.println("reversed int array : " + Arrays.toString(iArray));
       
        // reverse String array using ArrayUtis class
        System.out.println("Original String array : " + Arrays.toString(sArray));
        ArrayUtils.reverse(sArray);
        System.out.println("reversed String array in Java : " + Arrays.toString(sArray));        
    }   
   
}

Output:
Original int array : [101, 102, 103, 104, 105]
reversed int array : [105, 104, 103, 102, 101]
Original String array : [one, two, three, four, five]
reversed String array in Java : [five, four, three, two, one]

That's all on How to reverse Array in Java. In this Java program,  we have seen examples to reverse String and int array using Apache commons ArrayUtils class.By the way there are couple of other ways to reverse array as well, e.g. by converting Array to List and than using Collections.reverse() method or by using brute force and reverse array using algorithm. It depends upon, which method you like. If you are doing practice and learning Java, try to do this exercise using loops.

Related Java Programming tutorials from Javarevisited Blog

2 comments :

SARAL SAXENA said...

Hi Javin gr8 article but if we go by the way of java..then this thing can also be achieved..

You can reverse an array like this:

public void reverse(Object [] a){
for(int i = 0; i < a.length / 2; i++){
Object temp = a[i]; // swap using temporary storage
a[i] = a[a.length - i - 1];
a[a.length - i - 1] = temp;
}
}
It's worthy to note that it doesn't matter if the array length is an odd number, as the median value will remain unchanged. I have to admit that I haven't tested this but it should work.

For now please check the following program..http://ideone.com/3qqRAm

Anonymous said...

disappointed. i expected that you would provide algorithm for this. but you ended up in using open source library method.

Post a Comment