SORU
27 Mart 2009, Cuma


Java Koleksiyonlar listesi - don't anlamak kopyala

ArrayList Bir ben var ve bunu tam olarak kopyalamak istiyorum. Birisi biraz zaman doğru yaparak geçirdi varsayımı üzerinde mümkün olduğunca yardımcı program sınıfları kullanıyorum. Bu yüzden doğal olarak, ben bir kopya yöntemi içeren Collections sınıf oluşur.

Aşağıdaki: yoktur sanırım

List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
List<String> b = new ArrayList<String>(a.size());

Collections.copy(b,a);

Bu temelde b a tutmak için yeterince büyük olmadığını düşünmesi nedeniyle başarısız olur. Evet b 0, ama yeterince büyük şimdi değil olması gereken boyutu var biliyorum? Eğer b ilk doldurmak zorunda kalırsam, o zaman Collections.copy() aklımda tamamen işe yaramaz bir işlevi haline gelir. Bir kopyalama işlevi şimdi yapacağım) programlama dışında bunu yapmak için uygun bir yol var mı?

CEVAP
27 Mart 2009, Cuma


b vardırkapasite3 amaboyutu0. ArrayList tampon kapasitesi çeşit var aslında uygulama ayrıntı - List arayüz parçası değil, Collections.copy(List, List) kullanmaz. Bunun için çirkin 13 **-durum olurdu.

MrWiggles belirttiği gibi, bir koleksiyon alır ArrayList kurucu örnekte sağlanan için bir yoldur.

Daha karmaşık senaryolar için de gerçek kod içerebilir), Google Java Collections library yararlı olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • itfigueres

    itfigueres

    12 EKİM 2013
  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • knopik96

    knopik96

    7 Mayıs 2011