Easy to Learn Java: Programming Articles, Examples and Tips

Start with Java in a few days with Java Lessons or Lectures

Home

Code Examples

Java Tools

More Java Tools!

Java Forum

All Java Tips

Books

Submit News
Search the site here...
Search...
 

Array Example Java code example - Click here to copy ->>>

   Can't find what you're looking for? Try our search:

Really working examples categorized by API, package, class. You can compile and run our examples right away! Not from source code for Java projects - only working examples! Copy, compile and run!
------------------

Code:

 
 // -----------------------------------------------------------------------------
// ArrayExample.java
// -----------------------------------------------------------------------------

/*
 * =============================================================================
 * Copyright (c) 1998-2005 Jeffrey M. Hunter. All rights reserved.
 *
 * All source code and material located at the Internet address of
 * http://www.idevelopment.info is the copyright of Jeffrey M. Hunter, 2005 and
 * is protected under copyright laws of the United States. This source code may
 * not be hosted on any other site without my express, prior, written
 * permission. Application to host any of the material elsewhere can be made by
 * contacting me at jhunter@idevelopment.info.
 *
 * I have made every effort and taken great care in making sure that the source
 * code and other content included on my web site is technically accurate, but I
 * disclaim any and all responsibility for any loss, damage or destruction of
 * data or any other property which may arise from relying on it. I will in no
 * case be liable for any monetary damages arising from such loss, damage or
 * destruction.
 *
 * As with any code, ensure to test this code in a development environment
 * before attempting to run it in production.
 * =============================================================================
 */
 
import java.util.Arrays;
import java.util.Random;
import java.lang.reflect.Array;

/**
 * -----------------------------------------------------------------------------
 * Used to provide many of examples of how to work with Arrays in Java.
 * Some of the examples include Array declaration, resizing Arrays, returning
 * Arrays from methods and finally examples of using the Arrays class.
 *
 * @version 1.0
 * @author  Jeffrey M. Hunter  (jhunter@idevelopment.info)
 * @author  http://www.idevelopment.info
 * -----------------------------------------------------------------------------
 */

public class ArrayExample {


    /**
     * Provides an example of declaring an Array using different methodologies.
     */
    public static void declareExample() {


        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***        ARRAY DECLARATION            ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();


        // Example 1
        // ---------
        // First declare a reference and then construct it.
        int[] ExampleArray1;
        ExampleArray1 = new int[24];


        // Example 2
        // ---------
        // This can be considered the short form for declaring and construction.
        int[] ExampleArray2 = new int[24];


        // Example 3
        // ---------
        // Construct and assign an array using a single command.
        String[] ExampleArray3 = {
              "Sun Solaris"
            , "HP-UX"
            , "Linux"
            , "MS Windows"
            , "Macintosh"
        };


        // Example 4
        // ---------
        // Construct and assign an array of Objects using a single command.
        Integer[] ExampleArray4 = {
            new Integer(100),
            new Integer(200),
            new Integer(300),
            new Integer(400)
        };


        System.out.println("+----------------------------+");
        System.out.println("| Declare / Print Examples   |");
        System.out.println("| Built-in Types             |");
        System.out.println("| - print ExampleArray3[]    |");
        System.out.println("+----------------------------+");
        for (int i = 0; i < ExampleArray3.length; i++) {
            System.out.println("  - " + ExampleArray3[i]);
        }
        System.out.println("\n");

        System.out.println("+----------------------------+");
        System.out.println("| Declare / Print Examples   |");
        System.out.println("| Object Types               |");
        System.out.println("| - print ExampleArray4[]    |");
        System.out.println("+----------------------------+");
        for (int i = 0; i < ExampleArray4.length; i++) {
            System.out.println("  - " + ExampleArray4[i]);
        }
        System.out.println("\n");

    }


    /**
     * Provides an example of declaring an Array of Objects.
     */
    public static void objectArray() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***           OBJECT ARRAY              ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();

        final int MAX = 5;
        String[] platforms = new String[MAX];

        platforms[0] = new String("Sun Solaris");
        platforms[1] = new String("HP-UX");
        platforms[2] = new String("RedHat Linux");
        platforms[3] = new String("MS Windows");
        platforms[4] = new String("Macintosh");

        System.out.println("+----------------------------+");
        System.out.println("| Declare / Print Examples   |");
        System.out.println("| Object Types               |");
        System.out.println("| - print platforms[]        |");
        System.out.println("+----------------------------+");
        for (int i = 0; i < MAX; i++) {
            System.out.println("  - " + platforms[i]);
        }
        System.out.println("\n");

    }


    /**
     * Provides an example of how to resize an array by checking its length
     * before inserting into the Array.
     */
    public static void arrayResize() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***            RESIZE ARRAY             ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();

        final int STARTMAX = 5;
        int nPlatforms = 10;

        String[] platforms = new String[STARTMAX];

        System.out.println("+----------------------------+");
        System.out.println("| Resize Array               |");
        System.out.println("+----------------------------+");

        // Load the array
        for (int i = 0; i < nPlatforms; i++) {
       
            // Check and resize Array if required
            if (i >= platforms.length) {
                String[] tmp = new String[platforms.length + STARTMAX];
                System.arraycopy(platforms, 0, tmp, 0, platforms.length);
                platforms = tmp;
                // tmp array will be garbage collected...
            }
            platforms[i] = "Sun Solaris - " + i;
        }

        for (int i = 0; i < platforms.length; i++) {
            System.out.println("Platform " + i + " = " + platforms[i]);
        }
        System.out.println("\n");

    }


    /**
     * Helper class that returns a random number.
     */
    private static int getRandom(int mod) {
        Random rand = new Random();
        return Math.abs(rand.nextInt()) % mod + 1;
    }


    /**
     * Provides an example of how to create an Array without knowing the size
     * at compile time. In this case, simply use the "new" to create the
     * elements of the Array. It should be clear that the creation of the Array
     * is happening at runtime.
     */
    public static void randomSizeArray() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***          RANDOM SIZE ARRAY          ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();

        System.out.println("+--------------------------------+");
        System.out.println("| Random Size Array Declaration  |");
        System.out.println("+--------------------------------+");

        int[] a1 = new int[getRandom(50)];
        System.out.println("Length of Random Size Array (int)    : " + a1.length);
   
        String[] a2 = new String[getRandom(50)];
        System.out.println("Length of Random Size Array (String) : " + a2.length);
        System.out.println();

    }


    /**
     * Provides an example of how to return an array from a method.
     * @param n Size fo the array to create
     * @return <code>String[]</code> of the String array.
     */
    private static String[] returnArray(int n) {

        // Force number to be positive
        n = Math.abs(n);

        String[] results = new String[n];

        for (int i = 0; i < n; i++) {
            results[i] = "Platform #" + i;
        }
        return results;

    }


    /**
     * Provides an example of how to return an Array from a method. Returning an
     * Array is no different than returning any other object - you are returning
     * a reference to an Array.
     */
    public static void returnArray() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***           RETURN AN ARRAY           ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();

        System.out.println("+--------------------------------+");
        System.out.println("| Return an Array                |");
        System.out.println("+--------------------------------+");

        String[] a1 = returnArray(5);

        for (int i = 0; i < a1.length; i++) {
            System.out.println("  - " + a1[i]);
        }
        System.out.println();

    }


    /**
     * Provides an example of how to work with Multidimensional Arrays.
     */
    public static void multidimensionalArray() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***     MULTIDIMENSIONAL ARRAYS         ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();
       
        System.out.println("  -------------");
        System.out.println("  2x3 int Array");
        System.out.println("  -------------");
        int[][] a1 = {
            {1, 2, 3},
            {10, 20, 30}
        };
       
        for (int i = 0; i < a1.length; i++) {
            for (int j = 0; j < a1[i].length; j++) {
                System.out.println("  a1[" + i + "][" + j + "] = " + a1[i][j]);
            }
        }
        System.out.println();


        System.out.println("  ---------------------------------");
        System.out.println("  2-D Array of nonprimitive objects");
        System.out.println("  ---------------------------------");
        Integer[][] a2 = {
            {new Integer(1)   , new Integer(2)   },
            {new Integer(10)  , new Integer(20)  },
            {new Integer(100) , new Integer(200) }
        };
        for (int i = 0; i < a2.length; i++) {
            for (int j = 0; j < a2[i].length; j++) {
                System.out.println("  a2[" + i + "][" + j + "] = " + a2[i][j]);
            }
        }
        System.out.println();

        System.out.println("  ---------------------------");
        System.out.println("  3-D Array with fixed length");
        System.out.println("  ---------------------------");
        String[][][] a3 = new String[2][3][3];

        for (int i = 0; i < a3.length; i++) {
            for (int j = 0; j < a3[i].length; j++) {
                for (int k = 0; k < a3[i][j].length; k++) {
                    a3[i][j][k] =
                        new String("String [" + i + "][" + j + "][" + k + "]");
                }
            }
        }

        for (int i = 0; i < a3.length; i++) {
            for (int j = 0; j < a3[i].length; j++) {
                for (int k = 0; k < a3[i][j].length; k++) {
                    System.out.println(
                        "  a3[" + i + "][" + j + "][" + k + "] = " +
                        a3[i][j][k]);
                }
            }
        }
        System.out.println();

    }


    /**
     * Provides an example of how to Copy, Clone and Compare Arrays.
     *
     * Differences between Copying and Cloning an Array
     * ------------------------------------------------
     *   - When "copying" an Array, you are required to create and size the
     *     target array. You also have the ability of copying only a subset of
     *     the array.
     *     
     *   - Since Arrays implement the Cloneable interface, besides copying an
     *     Array, you can "clone" them. Cloning will create a new array of
     *     the same size and type and copying all the old elements into the
     *     new array. In the case of primitive elements, the new array has
     *     copies of the old elements, so changes to the elements of one are
     *     not reflected in the copy. However, in the case of objecte
     *     references, only the reference is copied. Thus, both copies of the
     *     array would point to the same object. Changes to that object would
     *     be reflected in both arrays. This is known as a shallow copy
     *     of shallow clone.
     *   
     * Checking for Equality
     * ---------------------
     *   - When checking using the "==" operator, you are checking for two
     *     array variables pointing to the same place in memory and thus
     *     pointing to the same array. When copying or cloning, the two
     *     array variables will NOT be pointing to the same place in
     *     memory.
     *   - Even when checking two arrays with the  "equals()" method of Object,
     *     since the arrays have the same elements but exist in different
     *     memory space, they are different.
     *   - In order to have a clone (or copy) of an array be equal to the
     *     original, you must use the equals() method of the:
     *     java.util.Arrays class.
     *   
     */
    public static void copyCloneArrays() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***      COPYING / CLONING ARRAYS       ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***    (Also checking for EQUALITY)     ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();

        String[] originalArray = {
              "Sun Solaris"
            , "HP-UX"
            , "Linux"
            , "MS Windows"
            , "Macintosh"
        };

        String[] copiedArray = new String[5];
        System.arraycopy(originalArray, 0, copiedArray, 0, originalArray.length);

        System.out.println("  Original Array");
        System.out.println("  --------------");
        for (int i=0; i < originalArray.length; i++) {
            System.out.println("  - " + originalArray[i]);
        }

        System.out.println();
        System.out.println("  Copied Array");
        System.out.println("  ------------");
        for (int i=0; i < copiedArray.length; i++) {
            System.out.println("  - " + copiedArray[i]);
        }

        System.out.println();
        System.out.println("  Check for Equality");
        System.out.println("  ------------------");
        System.out.println();
        System.out.println("    - originalArray == copiedArray              : " + (originalArray == copiedArray));
        System.out.println();
        System.out.println("    - originalArray.equals(copiedArray)         : " + (originalArray.equals(copiedArray)));
        System.out.println();
        System.out.println("    - Arrays.equals(originalArray, copiedArray) : " + (Arrays.equals(originalArray, copiedArray)));
        System.out.println();


        String[] clonedArray = (String[])originalArray.clone();

        System.out.println();
        System.out.println("  Original Array");
        System.out.println("  --------------");
        for (int i=0; i < originalArray.length; i++) {
            System.out.println("  - " + originalArray[i]);
        }

        System.out.println();
        System.out.println("  Cloned Array");
        System.out.println("  ------------");
        for (int i=0; i < clonedArray.length; i++) {
            System.out.println("  - " + clonedArray[i]);
        }

        System.out.println();
        System.out.println("  Check for Equality");
        System.out.println("  ------------------");
        System.out.println();
        System.out.println("    - originalArray == clonedArray              : " + (originalArray == clonedArray));
        System.out.println();
        System.out.println("    - originalArray.equals(clonedArray)         : " + (originalArray.equals(clonedArray)));
        System.out.println();
        System.out.println("    - Arrays.equals(originalArray, clonedArray) : " + (Arrays.equals(originalArray, clonedArray)));
        System.out.println();

    }


    /**
     * Provides an example of how to work with the Java Arrays Class.
     * The Arrays Class is found within the java.util package and contains four
     * static methods used to perform utility functions on Arrays.
     */
    public static void theArraysClass() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***        USING THE ARRAYS CLASS       ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();


        String[] a1 = new String[5];
        String[] a2 = new String[5];

        System.out.println("  --------------------");
        System.out.println("  Arrays.fill() Method");
        System.out.println("  --------------------");
        System.out.println();

        Arrays.fill(a1, "*");
        Arrays.fill(a2, "-");

        System.out.println("  ----------------------");
        System.out.println("  Arrays.equals() Method");
        System.out.println("  ----------------------");
        System.out.println("  Array a1 " +
                (Arrays.equals(a1, a2) ? "MATCHES" : "DOES NOT MATCH") + " a2");
        System.out.println();

        System.out.println("  --------------------");
        System.out.println("  Arrays.sort() Method");
        System.out.println("  --------------------");
        int[] a3 = new int[10];
        for (int i = 0; i < a3.length; i++) {
            a3[i] = getRandom(50 + i);
        }

        System.out.println("  Original Array");
        for (int i = 0; i < a3.length; i++) {
            System.out.println("    - a3[" + i + "] = " + a3[i]);
        }
        System.out.println();

        System.out.println("  Sorted Array");
        Arrays.sort(a3);
        for (int i = 0; i < a3.length; i++) {
            System.out.println("    - a3[" + i + "] = " + a3[i]);
        }
        System.out.println();

        System.out.println("  ----------------------------");
        System.out.println("  Arrays.binarySearch() Method");
        System.out.println("  ----------------------------");
        int location = Arrays.binarySearch(a3, 25);
        if (location >= 0) {
            System.out.println("    - Found the number 25 at location: " + location);
        } else {
            System.out.println("    - Could not find the number 25.");
        }
        System.out.println();

    }


    /**
     * While developing an application, it is reasonable that the developer
     * needs to determine if an argument or object is an array. To perform this
     * in Java, you must first retrieve the object’s Class object and simply
     * ask it. The isArray() method of the Class class will tell you.
     *
     * Once you have determined you have an array, you can ask the
     * getComponentType() method of Class what type of array you actually
     * have. The getComponentType() method returns null if the isArray() method
     * returned false. Otherwise, the Class type of the element is returned.
     * You can recursively call isArray() if the array is multidimensional.
     *
     * You can use the getLength() method of the Array class found in
     * java.lang.reflect package to discover the length of the array.
     *
     */
    public static void arrayReflection() {

        System.out.println();
        System.out.println("+===============================================+");
        System.out.println("|  ***                                     ***  |");
        System.out.println("|  ***           ARRAY REFLECTION          ***  |");
        System.out.println("|  ***                                     ***  |");
        System.out.println("+===============================================+");
        System.out.println();


        System.out.println();
        System.out.println("  ----------------------------------------------");
        System.out.println("  Check a String Object to see if it is an Array");
        System.out.println("  ----------------------------------------------");
        System.out.println();

        String stringVariable = "Alex Hunter";
        Class type0 = stringVariable.getClass();

        if (type0.isArray()) {
            Class elementType = type0.getComponentType();
            System.out.println("    - Array of  : " + elementType);
            System.out.println("    - Length of : " + Array.getLength(stringVariable));
        } else {
            System.out.println("    - " + type0.getName() + " is not an Array");
        }


        System.out.println();
        System.out.println("  -----------------------");
        System.out.println("  String Array Reflection");
        System.out.println("  -----------------------");
        System.out.println();

        String[] stringArray = {
            "Sun Solaris", "HP-UX", "Linux", "MS Windows", "Macintosh"
        };

        Class type1 = stringArray.getClass();

        if (type1.isArray()) {
            Class elementType = type1.getComponentType();
            System.out.println("    - Array of  : " + elementType);
            System.out.println("    - Length of : " + Array.getLength(stringArray));
        } else {
            System.out.print("    - " + type1.getName() + " is not an Array");
        }


        System.out.println();
        System.out.println("  --------------------------------");
        System.out.println("  int (primitive) Array Reflection");
        System.out.println("  --------------------------------");
        System.out.println();

        int[] intArray = {10, 20, 30, 40, 50, 60, 70, 80, 90, 100};
        Class type2 = intArray.getClass();

        if (type2.isArray()) {
            Class elementType = type2.getComponentType();
            System.out.println("    - Array of  : " + elementType);
            System.out.println("    - Length of : " + Array.getLength(intArray));
        } else {
            System.out.print("    - " + type2.getName() + " is not an Array");
        }

    }


    /**
     * Sole entry point to the class and application.
     * @param args Array of String arguments.
     */
    public static void main(String[] args) {

        declareExample();
        objectArray();
        arrayResize();
        randomSizeArray();
        returnArray();
        multidimensionalArray();
        copyCloneArrays();
        theArraysClass();
        arrayReflection();

    }

}

 
 



References.

The list of classes which were used on this page you can find below. The links to Java API contain official SUN documentation about all used classes.

  java.util.Arrays

  java.lang.reflect.Array

  java.lang.Integer

  java.sql.Types

  java.lang.Object

  java.util.Random

  java.lang.Cloneable

  java.lang.Class

  java.lang.reflect.Method




[ Go Back ]



Home Code Examples Java Forum All Java Tips Books Submit News, Code... Search... Offshore Software Tech Doodling

RSS feed Java FAQ RSS feed Java FAQ News     

    RSS feed Java Forums RSS feed Java Forums

All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest 1999-2006 by Java FAQs Daily Tips.

Interactive software released under GNU GPL, Code Credits, Privacy Policy