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

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Krumme1996

    Krumme1996

    21 EYLÜL 2009
  • Major FX

    Major FX

    6 HAZİRAN 2012