为什么要慎用 Arrays.asList(T... a):
- 该方法返回定长的 List,不支持 add 和 remove 操作
- 该方法返回的 List 与传入数组是映射关系(视图):set/get 操作直接作用于数组;直接修改数组,list 也会改变
替代方案:
// 方案一
// List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
Integer[] arr = {1, 2, 3};
List<Integer> list = new ArrayList<>(Arrays.asList(arr));
// 方案二
List<Integer> list = new ArrayList<>();
// Collections.addAll(list, 1, 2, 3);
Integer[] arr = {1, 2, 3};
Collections.addAll(list, arr);
// 方案三(需 JDK8)
// List<Integer> list = Arrays.stream(new Integer[]{1, 2, 3}).collect(Collectors.toList());
int[] arr = {1, 2, 3};
List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
// 方案四(需 Guava)
// List<Integer> list = Lists.newArrayList(1, 2, 3);
int[] arr = {1, 2, 3};
List<Integer> list = Lists.newArrayList(Ints.asList(arr));
点击查看更多内容
2人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦