1. ホーム

[解決済み]ArrayListをvarargsメソッドパラメータに渡すにはどうすればよいですか?

2022-03-29 19:37:33

質問

基本的に、私はロケーションの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

一番簡単な方法は何でしょうか?今、頭が真っ白になっているような気がします。

どのように解決するのですか?

ソース記事 vararg メソッドに引数としてリストを渡す


を使用します。 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]));
    //     ^^^^^^^^^^^^^^^^^^^^^^^^^^^
...