package com.wenxiaowu.list;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
/**
* Arrays.asList的防坑指南
* 1、返回的并不是java.util下的ArrayList,返回的是Arrays内部自己继承AbstractList的一个内部类ArrayList
* 2、传入的数组一定要是包装类型,这样才能正确的转换为list
* 3、对数组的修改也会影响list
* 4、调用Arrays.asList这个方法后,不能直接add元素,会抛出一个UnsupportedOperationException的异常
* 5、对数组的修改也会影响list
*/
public class ArraysAsList {
@Test
public void test1() {
int[] data = {1, 2, 3, 4, 5};
List list = Arrays.asList(data);
System.out.println("元素类型:" + list.get(0).getClass()); //元素类型:class [I
System.out.println("前后是否相等:" + data.equals(list.get(0))); //前后是否相等:true
Integer[] data2 = {1,2,3,4,5};
List list2 = Arrays.asList(data2);
System.out.println("元素类型:" + list.get(0).getClass()); //元素类型:class [I
System.out.println("列表中的元素数量是:" + list2.size()); //列表中的元素数量是:5
String[] str = new String[]{"1","2"};
List list3 = Arrays.asList(str);
str[0] = "unv";//那么list3.get(0)也随着修改
System.out.println(list3.toString()); //[unv, 2]
}
}
Arrays.asList的防坑指南
于 2022-01-18 19:44:45 首次发布