Arrays.asList()
String[] arr = new String[]{"张三","李四","王五"};
List<String> list = Arrays.asList(arr);
- 该方法的作用是将数组转换为一个集合
- 只适用于引用数据类型的数组转换,不建议使用基本数据类型
- 不能使用返回得到的List对象,调用add,remove,clear等方法
源码
@SafeVarargs
@SuppressWarnings("varargs")
public static <T> List<T> asList(T... a) {
return new ArrayList<>(a);
}
-----------------------------------------
/**
* 该ArrayList是Arrays类中的一个静态内部类,不是java.util下的集合工具
* 该内部类没有提供add,remove,clear等方法
* 调用add方法会直接使用他父类AbstractList类的add方法
*/
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable
{
private static final long serialVersionUID = -2764017481108945198L;
private final E[] a;
ArrayList(E[] array) {
a = Objects.requireNonNull(array);
}
}
-----------------------------------------
//其父类的add方法,直接抛出异常
public void add(int index, E element) {
throw new UnsupportedOperationException();
}