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

  • alexis gillis

    alexis gilli

    23 HAZİRAN 2011
  • Cristina Landa

    Cristina Lan

    28 Ocak 2010
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010