Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Array Copying vs Array Cloning

807606May 7 2007 — edited May 8 2007
I have not been able to understand Array Copying and Cloning with respect to this code. Can someone explain me the output.

import java.util.Arrays;

public class ArrayExample {

    public static void copyCloneArrayExample() {

        System.out.println();
        System.out.println("Copying and Cloning of Arrays");
        String[] array1 = {"beginner", "-", "java", "-", "tutorial",".", "com"};

        String[] copiedArray1 = new String[array1.length];
        System.arraycopy(array1, 0, copiedArray1, 0, array1.length);
        
        String[] clonedArray1 = (String[])array1.clone();

        System.out.println();
        System.out.println("  Original Array: Array1 -> ");
        for (int i=0; i < array1.length; i++) {
            System.out.print(array1[i]+" , ");
        }

        System.out.println();
        System.out.println("  Copied Array: copiedArray1 -> ");
        for (int i=0; i < copiedArray1.length; i++) {
            System.out.print(copiedArray1[i]+" , ");
        }
        
        System.out.println();
        System.out.println("  Cloned Array1 -> ");
        for (int i=0; i < clonedArray1.length; i++) {
            System.out.print(clonedArray1[i]+ " , ");
        }

        System.out.println();
        System.out.println();
        System.out.println(" originalArray3 == copiedArray3  : " + (array1 == copiedArray1));
        System.out.println("originalArray3.equals(copiedArray3) : " + (array1.equals(copiedArray1)));
        System.out.println(" Arrays.equals(originalArray3, copiedArray3) : " + (Arrays.equals(array1, copiedArray1)));
        System.out.println(" originalArray3 == clonedArray3 : " + (array1 == clonedArray1));
        System.out.println(" originalArray3.equals(clonedArray3) : " + (array1.equals(clonedArray1)));
        System.out.println(" Arrays.equals(originalArray3, clonedArray3) : " + (Arrays.equals(array1, clonedArray1)));
        System.out.println();
        System.out.println("-----------------------------------------------");

    }


    public static void main(String[] args) {

        copyCloneArrayExample();
    }

}
Output


Copying and Cloning of Arrays

Original Array: Array1 ->
beginner , - , java , - , tutorial , . , com ,
Copied Array: copiedArray1 ->
beginner , - , java , - , tutorial , . , com ,
Cloned Array1 ->
beginner , - , java , - , tutorial , . , com ,

originalArray3 == copiedArray3 : false
originalArray3.equals(copiedArray3) : false
Arrays.equals(originalArray3, copiedArray3) : true
originalArray3 == clonedArray3 : false
originalArray3.equals(clonedArray3) : false
Arrays.equals(originalArray3, clonedArray3) : true


-----------------------------------------------
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 5 2007
Added on May 7 2007
3 comments
205 views