Sonunda birisi java sordu :) heyecanla koştum :P
dizi1 = dizi2 dediğinde bu iki dizinin referanslarını bir birine eşitlediğin için birini değiştirince öteki de değişir. Burada kullanabileceğin metod System classının arraycopy metodudur.
public class arrayCopyTester {
private int array1[];
private int array2[];
public arrayCopyTester() {
// TODO Auto-generated constructor stub
array1 = new int[10];
array2 = new int[5];
}
public void insertToArray(int val, int pos) {
if (pos < 10)
array1[pos] = val;
else
System.out
.println("invalid position try again with lesst then 10 for the position!");
}
public int[] getArray1() {
return array1;
}
public void setArray1(int[] array1) {
this.array1 = array1;
}
public int[] getArray2() {
return array2;
}
public void setArray2(int[] array2) {
this.array2 = array2;
}
public static void main(String[] args) {
arrayCopyTester tester = new arrayCopyTester();
for (int i = 0; i < 10; i++)
tester.insertToArray(i + 19, i);
System.arraycopy(tester.getArray1(), 0, tester.getArray2(), 0, 5);
for (int i = 0; i < 5; i++)
tester.getArray2()[i] = tester.getArray2()[i] + 100;
for (int i = 0; i < 5; i++) {
System.out.println("array 2 -> " + tester.getArray2()[i]);
System.out.println("array 1 -> " + tester.getArray1()[i]);
}
}
}
burada ufak bir testter class'ı var. sen de editörünle bu kodu değiştirip. arraycopy metodunun kullanımı öğrenebilirsin.
Javadoc syntax'ı :
Static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
src : kopyalanacak kaynak array.
srcPos : kaynak kopyalama başlangıç indexi.
dest : hedef array.
destPos : hedef kopyalama başlangıç indexi.
length : kopyalacak eleman sayısı.
burada indexOutOfBoundsException'a dikkat etmen gerektiğini de hatırlatırım.