在初始化集合的使用,又是需要使用list,但是如果有十来个元素,一个个add也比较麻烦,这时可使用Arrays.asList(“1”, “2”, “3”,…),来实现比较简洁的处理。但是要注意一下几点:
- asList 的返回对象是一个 Arrays 内部类,并没有实现集合的修改方法。Arrays.asList
体现的是适配器模式,只是转换接口,后台的数据仍是数组。不能使用其修改集合相关的方法,它的 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。
String[] arrays = new String[]{"1", "2", "3", "4", "5"};
List<String> str = Arrays.asList(arrays);
这个运行就会报错。
- 如果修改数组的元素,list中的元素也会随着修改
String[] arrays = new String[]{"1", "2", "3", "4", "5"};
List<String> str = Arrays.asList(arrays);
arrays[0] = "01";
输出结果就会变成:“01”, “2”, “3”, “4”, “5”
- 如果要正常使用转换的list,可以将其转化成ArrayList,以上两个问题即可解决
String[] arrays = new String[]{"1", "2", "3", "4", "5"};
List<String> str = new ArrayList<>(Arrays.asList(arrays));
arrays[0] = "01";