JAVA代码技术问题总结

常见问题一、Arrays的asList()方法
​​​​​​

//到这里我们可以稍稍理清下思路了,我们调用Arrays的asList()方法将数组转换成List时返回的是Arrays的静态内部类ArrayList,
//它自身并未重写add()方法,而其父类AbstractList实现的add()方法只会抛出UnsupportedOperationException,
//导致我们调用Arrays的静态内部类ArrayList的add()方法时,实际调用的是只会抛出UnsupportedOperationException的
//AbstractList的add()方法,这就是异常出现的原因了。
public static void main(String[] args) {
    //有问题的举例
    List list333 = Arrays.asList("1");
    list333.add("111");

    //list = Arrays.asList("1");有问题的Arrays的asList()举例
    Map> map = new HashMap<>();
    List list = Arrays.asList("1");
    map.put(1,list);
    List addList =  Arrays.asList("2");;
    map.get(1).addAll(addList);
    //list = Arrays.asList("1");正常的list举例
    Map> map2 = new HashMap<>();
    List list2 = Collections.singletonList("1");
    map2.put(1,list2);
    List addList2 =  Collections.singletonList("2");
    map2.get(1).addAll(addList2);
    System.out.println("===");
}

你可能感兴趣的:(JAVA代码技术问题总结)