ArrayList に入れたいリソース文字列配列がありますが、返されるデータ型は文字列配列です。次のエラーを受け取ることなく、string[] を ArrayList に直接キャストすることはできません。
String[] から ArrayList にキャストできません
String[] データ型を ArrayList に変換するにはどうすればよいですか?
編集
コンストラクターが ArrayList と、それに入力したいリソース文字列配列を受け取るアダプターがあります。
List<String>
(具体的には ではない)で間に合わせることができる場合はArrayList<String>
、次を使用できます。
List<String> list = Arrays.asList(stringArray);
それ以外の場合は、次のようにできます。
ArrayList<String> list = new ArrayList<String>(Arrays.asList(stringArray));
ただし、後者は、他の提案されたソリューションよりも (時間とオブジェクト作成数の両方で) 効率的ではありません。その唯一の利点は、コードを 1 行に抑え、一目で理解しやすいことです。
public ArrayList<String> arrayToArrayList(String[] array){
ArrayList<String> arrayList = new ArrayList<String>(array.length);
for(String string : array){
arrayList.add(string);
}
return arrayList;
}
これはどう
import java.util.Collections;
String[] myStringArray = new String[] {"foo", "bar", "baz"};
List myList = new ArrayList(myStringArray.length);
Collections.addAll(myList, myStringArray);