1.将数组转化为列表
将数组转化为一个列表时,程序员们经常这样做:
List<String> list = Arrays.asList(arr);
Arrays.asList()
会返回一个ArrayList对象,ArrayList类是Arrays的一个私有静态类,而不是java.util.ArrayList类,java.util.Arrays.ArrayList类有set()、get()、contains()方法,但是没有增加元素的方法,所以它的大小是固定的,想要创建一个真正的ArrayList类,你应该这样做:
ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(arr));
ArrayList的构造方法可以接受一个集合类型,刚好它也是java.util.Arrays.ArrayList的超类。
package impotNew;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class test {
public static void main(String[] args) {
String[] strs = {"字符串0","字符串1","222222"};
ArrayList<String> alist =new ArrayList<String>(Arrays.asList(strs));
List<String> list= Arrays.asList(strs);
//Exception in thread "main" java.lang.UnsupportedOperationException
//list.add("song");
alist.add("song");
for(String str : alist){
System.out.print(str+" ");
}
System.out.println();
for(String str : list){
System.out.print(str+" ");
}
}
}
list.add("song");会报错的