1.最常用的方式(不支持新增和删除)
通过Arrays.asList(arrays)方式将数组转为list
String [] str = new String[1];
List<String> stringList = Arrays.asList(str);
System.out.println(stringList);
注:该返回值List只能用于查询和修改,不能新增和删除,否则会抛异常
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at com.example.demo.test.ArraysToList.t1(ArraysToList.java:23)
at com.example.demo.test.ArraysToList.main(ArraysToList.java:49)
原因解析:
Arrays.asList(arrays)返回值是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,它并非java.util.ArrayList类。java.util.Arrays.ArrayList类具有set(),get(),contains()等方法,但是不具有add()和remove()方法,所以调用add()方法时会报错
2.最常用的方式(支持新增和删除)
通过ArrayList的构造器,将Arrays.asList(arrays)的返回值由java.util.Arrays.ArrayList转为java.util.ArrayList
List<String> stringList = new ArrayList<>(Arrays.asList(str));
然后就可以对list进行新增和删除操作了,示例如下:
String [] str = new String[2];
List<String> stringList = new ArrayList<>(Arrays.asList(str));
System.out.println(stringList);
stringList.add("1");
System.out.println(stringList);
注:该方法适合List数据量不大的情况下使用
3.最高效的方法(支持新增和删除)
通过集合工具类Collections.addAll(list,arrays)方法进行转换。根据数组的长度创建一个长度相同的list,然后通过Collections.addAll(list,arrays)方法,将数组中的元素转为二进制,然后添加到list中
String [] str = new String[3];
List<String> list = new ArrayList<>(str.length);
Collections.addAll(list, str);
System.out.println(list);
list.add("2");
System.out.println(list);
注:该方法适合List数据量大的情况下优先使用