SORU
25 Mart 2012, Pazar


Nasıl varargs bir yöntem parametresi için bir ArrayList geçmek için?

Temelde yerlerde bir ArrayList var:

ArrayList<WorldLocation> locations = new ArrayList<WorldLocation>();

ben bunu aşağıdaki yöntem çağrısı:

.getMap();

bu getMap parametreleri() yöntemi vardır:

getMap(WorldLocation...locations)

Yaşıyorum sorun bu yönteme locations TÜM liste içinde geçirmek nasıl emin değilim.

Denedim

.getMap(locations.toArray())

ama getMap çünkü Nesneleri kabul etmez bunu kabul etmiyor[].

Eğer kullanırsam artık

.getMap(locations.get(0));

daha iyi çalışır. ama nedense TÜM konumları... elbette eklemeye devam locations.get(1), locations.get(2) vb yapabilirim geçmek istiyorum. ama dizinin boyutu değişir. ArrayList bir kavramı tümüyle kullanmak zorunda değilim

Bu konuda gitmek için en kolay yolu ne olurdu? Hemen şimdi düşünüyorum da değil gibi hissediyorum.

CEVAP
25 Mart 2012, Pazar


toArray(T[] arr) yöntemi kullanın.

.getMap(locations.toArray(new WorldLocation[locations.size()]))

(toArray(new WorldLocation[0]) de çalışır, ama nafile sıfır uzunlukta bir dizi ayrılırken olurdu :)


İşte tam bir örnek:

public static void method(String... strs) {
    for (String s : strs)
        System.out.println(s);
}

...
    List<String> strs = new ArrayList<String>();
    strs.add("hello");
    strs.add("wordld");

    method(strs.toArray(new String[strs.size()]));
    //     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3biblecom

    3biblecom

    23 NİSAN 2011
  • Apple

    Apple

    22 HAZİRAN 2005
  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007