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
-----------------------------------------------