我有一个资源字符串数组,我想放入一个ArrayList,但返回的数据类型是一个字符串数组。字符串[]不能直接转换为ArrayList的W/O收到以下错误:不能从字符串[]转换为ArrayList <String>
无法从字符串[]转换为ArrayList的
如何我转换的String []数据类型为ArrayList的?
编辑
我有一个适配器,其构造函数采用一个ArrayList和资源字符串数组,我想填充它。
我有一个资源字符串数组,我想放入一个ArrayList,但返回的数据类型是一个字符串数组。字符串[]不能直接转换为ArrayList的W/O收到以下错误:不能从字符串[]转换为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));
然而,后者比其他建议的解决方案效率更低(在时间和对象创建计数中)。它的唯一好处是它可以将代码保存到一行,并且一目了然便于理解。
public ArrayList<String> arrayToArrayList(String[] array){
ArrayList<String> arrayList = new ArrayList<String>(array.length);
for(String string : array){
arrayList.add(string);
}
return arrayList;
}
我确定这可行,但其他答案更有效。谢谢你! –
如果您构建初始容量设置为array.length的'arrayList',效率将会提高。 @AndroidAddict - 你为什么认为这不是有效的? –
谢谢,泰德。更新我的代码。 – dennisdrew
这个怎么样
import java.util.Collections;
String[] myStringArray = new String[] {"foo", "bar", "baz"};
List myList = new ArrayList(myStringArray.length);
Collections.addAll(myList, myStringArray);
好的,这有效,但有没有更高效(简洁)的方式?如果是这样,请编辑您的答案以反映此类情况。我理想地喜欢在一行中执行转换,而不用创建另一个变量。 –
@AndroidAddict没有我知道的,你可以保持这个问题是开放的,看看是否有人提出更好的,但如果你正在寻找简洁,Java可能不是你的语言=)。 –
真的没有别的方法,除了在创建新ArrayList的过程中。没有特别的方法将数组转换为列表。 – dennisdrew
List和ArrayList不一样。 –
@AndroidAddict - 我意识到这一点。这就是为什么我符合第一个建议。然而,'ArrayList'是'List'的一个子类型,所以这很可能会起作用。 –
@AndroidAddict你理想的解决方案是什么?您将无法直接从阵列转换为数组列表。这里有很多足够有效的答案。 – dennisdrew