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

  • Elliot Davin

    Elliot Davin

    28 Kasım 2008
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • Liz Morgan

    Liz Morgan

    4 Aralık 2011