zoukankan      html  css  js  c++  java
  • Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作

    我们都知道,List的一个典型的特性就是其长度是可变的,我们可以很方便地对它进行插入和删除元素的操作,这是它与数组所存在的一个很大的区别,后者的长度是固定的,而且我们不能从数组中删除元素,只能修改元素的值。利用Arrays.asList(array)将返回一个List,然而这个返回的List并不支持add和remove的操作。
    这是什么原因呢?


    这里的ArrayList并不是java.util.ArrayList,而是Arrays的内部类:




    先说一下,使用ArrayList也只能生成有相同数据的一个新对象,然后在这上面进行数据的添加和删除等操作,而不可能对原来的数组进行数据删除操作,原来的String数组是不变的。
    转换为ArrayList的代码如下(用现成的方法就行了,不用使用循环去逐个add):
    String[] s = {"aa","bb","cc","dd","ee"};

    ArrayList<String> list = new ArrayList<String>();
    list.addAll(Arrays.asList(s));

    或者可以更简洁地写为一句:
    ArrayList<String> list = new ArrayList<String>(Arrays.asList(s));

  • 相关阅读:
    最近吸收的html && CSS 知识
    Visual C++ 20111021
    递归变位数(练习)
    effective C++ 第五章
    二叉树的非递归遍历
    插入排序补充
    数的乘方,简单背包,组合
    在这个病毒猖獗的年代……
    元宵夜游城隍庙
    Cherish your work
  • 原文地址:https://www.cnblogs.com/lcuzhanglei/p/2582270.html
Copyright © 2011-2022 走看看