下面的代码执行后
private void onButtonAsListClick() {
String[] strArray = new String[] { "aa", "bb" };
List<String> list = Arrays.asList(strArray);
try {
list.add("cc");
} catch (Exception e) {
Log.i("AsList", "add failure");
}
}异常发生
![]()
原因:

是一个不可变的数组,所以修改如下:
private void onButtonAsListClick() {
String[] strArray = new String[] { "aa", "bb" };
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.addAll(Arrays.asList(strArray));
try {
arrayList.add("cc");
} catch (Exception e) {
Log.i("AsList", "add failure");
}
for (String string : arrayList) {
Log.i("AsList", string);
}
}输出结果:

上面的代码:
ArrayList<String> arrayList = new ArrayList<String>();
arrayList.addAll(Arrays.asList(strArray));也可改为:
ArrayList<String> arrayList = new ArrayList<String>(
Arrays.asList(strArray));效果一样。
本文介绍如何正确地将字符串数组转换为可修改的列表。由于直接使用`Arrays.asList()`方法得到的是不可变列表,文章提供了两种解决方案:一是先创建一个空的`ArrayList`再使用`addAll()`方法添加元素;二是直接在构造`ArrayList`时传入`Arrays.asList(strArray)`。
495

被折叠的 条评论
为什么被折叠?



