精华内容
下载资源
问答
  • 最近在学习集合学到Array和ArryList区别时,发现:数组转换List之后不能进行add和remove操作。 例: public class Test { public static void main(String[] args) { String[]str={"111","222","333"}; ...

    最近在学习集合学到Array和ArryList的区别时,发现:数组转换成List之后不能进行add和remove操作。

    例:

    public class Test {
    
        public static void main(String[] args) {
            String[]str={"111","222","333"};
            List<String> strings=Arrays.asList(str);
            strings.add("444");
    
        }
    }
    

    会报以下错误:

    查看   Arrays.asList(str);   的源码:

    发现这里new了一个ArrayList的集合,但是这不是ArrayList类,这是Arrays里的一个静态的内部类。

    此内部类并没有add和remove方法,所以如果此时调用add或者remove方法则会报错。

      那么,如果要进行add和remove操作应该怎么办呢?

    使用如下语句:

    List<String>newStrings=new ArrayList<String>(strings); 

    将之前的对象放入一个新的ArrayList对象。

    修改后:

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Test {
    
        public static void main(String[] args) {
            String[]str={"111","222","333"};
            List<String> strings=Arrays.asList(str);
    
            List<String>newStrings=new ArrayList<String>(strings);
    
            newStrings.add("444");
    
            for (String e:newStrings)
                System.out.println(e);
    
    
        }
    }
    

     

    输出:

    展开全文
  • 最近在学习集合学到Array和ArryList区别时,发现:数组转换List之后不能进行add和remove操作。 例: public class Test { public static void main(String[] args) { String[]str={"aa","bb","cc"}; List<...

    最近在学习集合学到Array和ArryList的区别时,发现:数组转换成List之后不能进行add和remove操作。

    例:

    public class Test {
     
        public static void main(String[] args) {
            String[]str={"aa","bb","cc"};
            List<String> list=Arrays.asList(str);
            strings.add("dd");
     
        }
    }
    

    会报以下错误:
    在这里插入图片描述

    查看 Arrays.asList(str); 的源码:
    在这里插入图片描述

    发现这里new了一个ArrayList的集合,但是这不是ArrayList类,这是Arrays里的一个静态的内部类。

    此内部类并没有add和remove方法,所以如果此时调用add或者remove方法则会报错。

    那么,如果要进行add和remove操作应该怎么办呢?

    使用如下语句:

    ListnewStrings=new ArrayList(list);

    将之前的对象放入一个新的ArrayList对象。

    修改后:

    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
     
    public class Test {
     
        public static void main(String[] args) {
             String[]str={"aa","bb","cc"};
            List<String> list=Arrays.asList(str);
            List<String>newStrings=new ArrayList<String>(list);
     
            newStrings.add("dd");
    
            for (String e:newStrings)
                System.out.println(e);
         }
    }
    

    完美解决!!!!!!

    展开全文
  • Arrays.asList()数组转换List集合

    万次阅读 2018-05-03 11:51:19
    在java语言中,把数组转换List集合,有个很方便方法就是 List&lt;String&gt; list = Arrays.asList("a","b","c");但你可能不知道,这样得到List长度是不能改变。...

    在java中,把数组转换成List集合,List<String> list = Arrays.asList("a","b","c"); 这样得到的List的长度是不能改变的。当你向这个List添加或删除一个元素时(例如 list.add("d");)程序就会抛出异常(java.lang.UnsupportedOperationException)。怎么会这样?

    只需要看看asList()方法是怎么实现的就行了。

    public static <T> List<T> asList(T... a) {
            return new ArrayList<>(a);
    }

    返回了一个ArrayList对象。这个ArrayList不是java.util包下的而是java.util.Arrays.ArrayList,显然它是Arrays类自己定义的一个内部类!这个内部类没有实现add()、remove()方法,而是直接使用它的父类AbstractList的相应方法。而AbstractList中的add()和remove()是直接抛出java.lang.UnsupportedOperationException异常的!

    总结:   如果你的List只是用来遍历,就用Arrays.asList()吧!

              如果你的List还要添加或删除元素,还是乖乖地new一个java.util.ArrayList,然后一个一个的add()添加元素吧!

    展开全文
  • android培训、java培训、期待与您交流 ...注意:集合里面增删方法不能用了,例如:add ,会出现UnsupportedOperationException。 因为数组的长度是固定。 List list = Arrays.asList(arr); sop("con

    android培训java培训、期待与您交流

    一数组转集合,Arrays.asList,

    为什么要把数组转成集合呢?

    可以使用集合里面的方法和思想来操作数组,

    注意:集合里面的增删方法不能用了,例如:add ,会出现UnsupportedOperationException。

    因为数组的长度是固定的。

    List<String> list = Arrays.asList(arr);
    sop("contains:"+list.contains("cc"));


    List<int []> li = Arrays.asList(nums);
      
    如果数组中的元素都是对象,变成集合时,数组中的对象就直接作为集合中的元素存在。
    如果数组中的元素都是基本类型,变成集合时,那么会将该数组作为集合中的元素存在。

    Integer [] nums ={2,4,5};
    List<Integer> li = Arrays.asList(nums);
    sop(li);

    2集合边数组、
    Collection接口中的toArray方法。

    1,指定类型的数组到底指定多长呢?
    当指定类型的数组长度小于了集合的size,
    那么该方法内部会创建一个新的数组,长度为集合的Size。
    当指定类型的数组长度大于了集合的size就ibu会新创建数组,而是使用传递进来的数组。
    所有创建一个刚刚好的数组最优。
    2,为什么要将集合变数组啊?
    为了限定对元素的操作。不需要进行增删了。

    ArrayList<String> al = new ArrayList<String>();

    al.add("abc1");
    al.add("abc2");
    al.add("abc3");

    String [] arr =al.toArray(new String[al.size()]);
    sop(Arrays.toString(arr));

    android培训java培训、期待与您交流


    展开全文
  • 数组与List相互转换List转数组:采用集合的toArray()方法数组转List:...以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出 UnsupportedOperationExc...
  • 数组与List相互转换List转数组:采用集合的toArray()方法数组转List:...以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出 UnsupportedOperationExc...
  • 使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方 法,它 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 返回对象是一个 Arrays 内部类,并没有...
  • 数组集合的转换

    2019-09-26 16:56:24
    1.集合转数组 2.数组转集合 第一种情况:list.add(“xxx”),运行时异常。 第二种情况:array[0] = “000”, 那么 list.get(0)...不能使用其修改集合相关方法, 它 add/remove/clear 方法会抛出 UnsupportedOpe...
  • 数组与List相互转换 List转数组:采用集合的toArray()方法 ...以Arrays.asList()为例,它把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出 UnsupportedOpera...
  • 业务场景下我们通常用到 Arrays.asList() 将数组转成集合 但是 这个api有点问题 看用了Arrays.asList(string);之后List就是个定长List了 不能add了 还是Stream流 比较靠谱些
  • 在使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合的相关方法,他的add/remove/clear方法都会抛出UnsupportedOperationException异常。说明: asList返回对象是一个Arrays内部类,并没有实现...
  • 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况。...
  • 文章目录1、报错展示:...使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方 法,它 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 返回对象是一个...
  • 使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方 法,它 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 返回对象是一个 Arrays 内部类,并没有...
  • 转载来源:... 在使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合的相关方法,他的add/remove/clear方法都会抛出UnsupportedOperationException异常。 说明: a...
  • //将数组转成集合 List<String> list = Arrays.asList(arr); // 此步骤是防止遍历删除时报错,上一步list是数组转换 ,Arrays.asList(arr) 转换 List 并不能进行 add 和 remove // 操作。 ...
  • //集合转数组,只能转成对象数组不能转成基本类型的数组) ArrayList integerList = new ArrayList(); integerList.add(1); integerList.add(2); Integer[] intArray = integerList.toArray(new Integer[]{
  • java数组和list转换

    千次阅读 2018-09-08 21:45:19
    asList() 把数组转换成集合时,不能使用其修改集合相关方法,它 add / remove / clear 方法会抛出 UnsupportedOperationException 异常。 说明: asList 返回对象是一个 Arrays 内部类,并没有实现集合的...
  • 使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方法,它 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。 说明:asList 返回对象是一个 Arrays 内部类,并没有...
  • java:数组转list、list转数组

    千次阅读 2017-08-21 11:33:20
    数组转list:String[] strArray = new String[] { "a", "b" };...使用工具类 Arrays.asList()把数组转换list时,不能使用其修改集合相关方法,它 add/remove/clear 方法会抛出 UnsupportedOperationExc
  • 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法 它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况 2、...
  • 今天在搜索数组集合对象相互转化问题时,发现了一些有趣问题,在此和大家进行共勉~如有合适地方望更正。 1、如果只是想将数组转换List,可以用JDK中java.util.Arrays类: import java.util.Arrays...
  • 集合框架

    2019-09-30 06:32:42
    1.集合类:是一种工具类,就像是容器,存储任意数量具有相同属性对象,集合元素,可以是任意类型对象(对象引用),如果把某个对象放入集合中,则会忽略...数组转成list集合方法是调用 Arrays.asList()...
  • 【强制】使用工具类 Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方法,它 add/remove/clear 方法会抛出 UnsupportedOperationException 异常。说明:asList 返回对象是一个 Arrays 内部类,并...
  • 使用工具类Arrays.asList()把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出UnsupportOperationException异常 说明:asList返回对象是一个Arrays内部类,并没有实现集合的修改...
  • 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况. ...
  • 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出UnsupportedOperationException() 我们来看一下为什么会出现这种情况. ...
  • 阿里巴巴java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法,它的add/remove/clear方法会抛出UnsupportedOperationException(),我们来看一下为什么会出现这种情况. ...
  • 阿里巴巴Java开发规范说到使用工具类Arrays.asList()方法把数组转换成集合时,不能使用其修改集合相关方法。因为它的add/remove/clear方法会抛出Unsuppo...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

数组转成的集合不能add