web-dev-qa-db-ja.com

JavaでList <String>をString []に変換

Stringの listarray に変換するにはどうすればよいですか?次のコードはエラーを返します。

public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");
    String[] strarray = (String[]) strlist.toArray();       
    System.out.println(strarray);
}

エラー:

Exception in thread "main" Java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
    at test.main(test.Java:10)
69
Christian

あなたが欲しい

String[] strarray = strlist.toArray(new String[0]);

ドキュメントについては here を参照してください。また、返される型を調べるために使用するのではなく、渡された配列に値を設定する方法でこのメソッドを呼び出すこともできます。また、配列を印刷するときは、

System.out.println(Arrays.toString(strarray));

それは実際の要素を出力するからです。

98
jjujuma
public static void main(String[] args) {
    List<String> strlist = new ArrayList<String>();
    strlist.add("sdfs1");
    strlist.add("sdfs2");

    String[] strarray = new String[strlist.size()]
    strlist.toArray(strarray );

    System.out.println(strarray);


}
18
Paul

List.toArray()は必ずObjectの配列を返します。文字列の配列を取得するには、キャスト構文を使用する必要があります。

String[] strarray = strlist.toArray(new String[0]);

詳細については、Java.util.Listのjavadocを参照してください。

3
crazyscot

この種のタスクのために Dollar を設計および実装しました。

String[] strarray= $(strlist).toArray();
2
dfa

String [] strarray = strlist.toArray(new String [0]);

リストを文字列に変換する場合は、StringUtils.join(slist、 '\ n')を使用します。

0
phil

これが誰かを助けることを願っています:

リストリスト= ..;

String [] stringArray = list.toArray(new String [list.size()]);

ここからの素晴らしい答え: https://stackoverflow.com/a/4042464/1547266

0
Arthur