ArrayList を varargs メソッドパラメータに渡すにはどうすればいいですか? 質問する

ArrayList を varargs メソッドパラメータに渡すにはどうすればいいですか? 質問する

基本的に、場所の ArrayList があります。

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

この下で次のメソッドを呼び出します。

.getMap();

getMap() メソッドのパラメータは次のとおりです。

getMap(WorldLocation... locations)

私が抱えている問題は、そのメソッドにリスト全体を渡す方法がわからないことですlocations

私はもう試した

.getMap(locations.toArray())

しかし、getMap は Objects[] を受け入れないため、これを受け入れません。

さて、私が

.getMap(locations.get(0));

完璧に動作します...しかし、何らかの方法ですべての場所を渡す必要があります...もちろん、追加し続けることもできますlocations.get(1), locations.get(2)が、配列のサイズは異なります。私は、ArrayList

これを解決する最も簡単な方法は何でしょうか? 今はまともに考えられないような気がします。

ベストアンサー1

ソース記事:リストを可変長引数メソッドの引数として渡す


使用toArray(T[] arr)方法。

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

完全な例を次に示します。

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("world");
    
    method(strs.toArray(new String[0]));
    //     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
...

おすすめ記事