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

  • Jason Rosolowski

    Jason Rosolo

    25 EKİM 2006
  • Just So

    Just So

    3 HAZİRAN 2007
  • Matthew Morrill

    Matthew Morr

    15 EKİM 2011