セットの変換方法 String[]に?質問する

セットの変換方法 String[]に?質問する

String[]から を取得する必要がありますSet<String>が、その方法がわかりません。次のコードは失敗します。

Map<String, ?> myMap = gpxlist.getAll();
Set<String> myset = myMap.keySet();
String[] GPXFILES1 = (String[]) myset.toArray(); // Here it fails.

動作するように修正するにはどうすればいいでしょうか?

ベストアンサー1

使用Set#toArray(IntFunction<T[]>)をジェネレータとして受け取るメソッドIntFunction

String[] GPXFILES1 = myset.toArray(String[]::new);

まだJava 11を使用していない場合は、Set#toArray(T[])同じサイズの型付き配列引数を取るメソッド。

String[] GPXFILES1 = myset.toArray(new String[myset.size()]);

mysetまだ Java 11 ではなく、配列への変換時に変更不可能であることを保証できない場合は、空の型付き配列を指定することをお勧めします。

String[] GPXFILES1 = myset.toArray(new String[0]);

おすすめ記事