SORU
28 NİSAN 2011, PERŞEMBE


Klon arama yapar() bir dizi de içeriğini klon?

Ben Bir tür Nesnelerin dizi clone() yöntem çağırmak, ne kadar unsurları klon olacak? Kopya aynı nesneler için referans olacak? Yoksa her biri için (element of type A).clone() arayacak?

CEVAP
28 NİSAN 2011, PERŞEMBE


clone() yüzeysel bir kopyasını oluşturur. Öğeleri klonlanmış olmayacak anlamına gelir. (Cloneable? uygulamak etmediler eğer mi ne)

clone() klonlama diziler için iyi, başka hiçbir şeye benzemeyen için de) yerine kopyalama diziler için Arrays.copyOf(..) kullanmak isteyebilirsiniz

Derin klonlama, check this answer isterseniz


Küçük bir örnek, eğer elemanlar Cloneable bile clone() sığlığı göstermek için:

ArrayList[] array = new ArrayList[] {new ArrayList(), new ArrayList()};
ArrayList[] clone = array.clone();
for (int i = 0; i < clone.length; i   ) {
    System.out.println(System.identityHashCode(array[i]));
    System.out.println(System.identityHashCode(clone[i]));
    System.out.println(System.identityHashCode(array[i].clone()));
    System.out.println("-----");
}

Baskı:

4384790  
4384790
9634993  
-----  
1641745  
1641745  
11077203  
-----  

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • Dom Esposito

    Dom Esposito

    26 Mayıs 2011
  • Google Chrome

    Google Chrom

    1 EYLÜL 2008