SORU
3 NİSAN 2009, Cuma


Nasıl ArrayList klon ve de içeriğini klonlamak için?

Nasıl bir ArrayList kopyalayabilir miyim ve ayrıca Java 1.5 öğeleri klon?

Örneğin:

ArrayList<Dog> dogs = getDogs();
ArrayList<Dog> clonedList = ....something to do with dogs....

Ve clonedList nesneleri köpekler listesinde aynı değildir bu beklenirdi.

CEVAP
3 NİSAN 2009, Cuma


Ben, şahsen, Köpek için bir kurucu ekleyin:

class Dog
{
    public Dog()
    { ... } // Regular constructor

    public Dog(Dog dog) {
        // Copy all the fields of Dog.
    }
}

O zaman sadece yineleme Varkhan cevabı gösterildiği gibi):

public static List<Dog> cloneList(List<Dog> dogList) {
    List<Dog> clonedList = new ArrayList<Dog>(dogList.size());
    for (Dog dog : dogList) {
        clonedList.add(new Dog(dog));
    }
    return clonedList;
}

Etrafında Java kırık Cloneable şeyler etmene gerek yok bu avantajı buluyorum. Ayrıca Java koleksiyonları kopyalayın o şekilde uyuyor.

Başka bir seçenek kendi İCloneable arayüzü yazmak ve kullanmak olabilir. Bu şekilde klonlama için genel bir yöntem yazabilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BenjiManTV

    BenjiManTV

    20 Mart 2011
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • Matus Slovak

    Matus Slovak

    5 Temmuz 2007