java数组String[]与列表List相互转换,解决转换后add,remove报错问题

1、String[] 转 List

String[] strs = new String[]{"1", "2", "3"};
List<String> strLists = new ArrayList<>(Arrays.asList(strs));

查看源码发现,Arrays.asList()返回的ArrayList继承自AbstractList,它仅支持那些不会改变数组大小的操作,所以任何对底层数据结构的尺寸进行修改的方法都会出现异常,Arrays.asList()返回固定尺寸的List。

所有为了转换后的List可以 add 和 remove,需要用 new ArrayList<>() 重新包装一下。

2、List 转 String[]

List<String> strLists = new ArrayList<>();
strLists.add("1");
strLists.add("2");
strLists.add("3");
String[] strs = strLists.toArray(new String[0]);

猜你喜欢

转载自blog.csdn.net/zhangjian8641/article/details/107813408
今日推荐