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

  • Chriselle Lim

    Chriselle Li

    26 Ocak 2008
  • Paste Magazine

    Paste Magazi

    28 AĞUSTOS 2008
  • Perihelion

    Perihelion

    23 NİSAN 2008