Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.lang.reflect.Array;

public class Main {
    public static Object copyArray(final Object input) {
        final Class type = input.getClass();
        if (!type.isArray()) {
            throw new IllegalArgumentException();
        }
        final int length = Array.getLength(input);
        final Class componentType = type.getComponentType();

        final Object result = Array.newInstance(componentType, length);
        for (int idx = 0; idx < length; idx++) {
            Array.set(result, idx, Array.get(input, idx));
        }
        return result;
    }

    public static void main(final String[] args) {
        try {
            int[] x = new int[] { 2, 3, 8, 7, 5 };
            char[] y = new char[] { 'a', 'z', 'e' };
            String[] z = new String[] { "Jim", "John", "Joe" };
            System.out.println(" -- z and copy of z --");
            outputArrays(z, copyArray(z));
        } catch (final Exception ex) {
            ex.printStackTrace();
        }
    }

    public static void outputArrays(final Object first, final Object second) {
        if (!first.getClass().isArray()) {
            throw new IllegalArgumentException("first is not an array.");
        }
        if (!second.getClass().isArray()) {
            throw new IllegalArgumentException("second is not an array.");
        }

        final int lengthFirst = Array.getLength(first);
        final int lengthSecond = Array.getLength(second);
        final int length = Math.max(lengthFirst, lengthSecond);

        for (int idx = 0; idx < length; idx++) {
            System.out.print("[" + idx + "]\t");
            if (idx < lengthFirst) {
                System.out.print(Array.get(first, idx) + "\t\t");
            } else {
                System.out.print("\t\t");
            }
            if (idx < lengthSecond) {
                System.out.print(Array.get(second, idx) + "\t");
            }
            System.out.println();
        }
    }
}