Arrays.asList()操作的异常问题

标签: Arrays.asList
0人阅读 评论(0) 收藏 举报
分类:

    先来一段代码,引出一个问题。

    

public class Test {
    public static void main(String[] args) {
        List list1= Arrays.asList(1,2);
        List list2=Arrays.asList(1,2,3,4);
        list2.removeAll(list1);

    }
}

那么这段代码运行之后,会抛出一个异常

Exception in thread "main" java.lang.UnsupportedOperationException
	at java.util.AbstractList.remove(AbstractList.java:161)
	at java.util.AbstractList$Itr.remove(AbstractList.java:374)
	at java.util.AbstractCollection.removeAll(AbstractCollection.java:373)
	at Test.main(Test.java:17)

为什么会报这个错,误呢,其实要说明这个问题就得从源码来说起了。其实Arrays.asList其实返回的并不是我们所熟知的ArrayList,而是Arrays内部的一个自己定义的一个ArrayList,它和我们平常使用的ArrayList一样都继承 了AbstractList接口,在AbstractList中,默认remove就是会抛出一个异常,不做其他任何的处理。

public E remove(int index) {
        throw new UnsupportedOperationException();
    }
因为我们的ArrayList重写了这个remove方法,而Arrays内部的ArrayList并没有重写这个方法,所以会调用父类的这个方法也就直接抛出了一个异常了。
查看评论

Arrays.asList使用注意

当传入的是基本类型时,会把传过来的数组作为list的第一个元素: public class ArraysasList { public static void main(String[] args...
  • sunhuwh
  • sunhuwh
  • 2015-03-30 01:15:18
  • 2791

Arrays.asList的使用及异常问题

将数组转成List问题,通常我们习惯这样写成:List list = Arrays.asList("1","2"); 于是我们这样就得到了一个list,但是这个List的实现类是java.util....
  • x1n1010
  • x1n1010
  • 2013-12-21 11:02:01
  • 367

使用Arrays.asList()需要注意的点

Arrays.asList()在使用时需要注意的问题。
  • hello_word2
  • hello_word2
  • 2016-11-28 11:43:15
  • 2015

Arrays.asList引起的惨案

最近代码中需要对两个数组求交,想当然便用到了List中的retainAll函数,但要将将数组转换成list。代码如下: String[] abc = new String[] { "abc", ...
  • z69183787
  • z69183787
  • 2016-07-05 22:50:59
  • 787

Arrays.asList()是个坑

在java语言中,把数组转换成List集合,有个很方便的方法就是 List list = Arrays.asList("a","b","c"); list.add("d");但你可能不知道这样得到的L...
  • keketrtr
  • keketrtr
  • 2015-07-28 17:38:17
  • 7904

为什么Java里的Arrays.asList不能用add和remove方法?

在平时的开发过程中,我们知道可以将一个Array的对象转化为List。这样的操作,我们只要采用Arrays.asList这个方法就行了。笔者前段时间一直用这个方法,有一天,我发现通过Arrays.as...
  • loveaborn
  • loveaborn
  • 2014-10-03 10:27:18
  • 12812

正确认识Arrays.asList方法

Arrays工具类提供了一个方法asList, 使用该方法可以将一个变长参数或者数组转换成List 。 其源代码如下: /** * Returns a fixed-size ...
  • GarfieldEr007
  • GarfieldEr007
  • 2017-01-14 23:49:44
  • 384

Arrays.asList() 返回的list不能add,remove以及慎用java.util.Collections.copy()方法

今天在搜索数组和集合对象相互转化的问题时,发现了一些有趣的问题,在此和大家进行共勉~如有不合适的地方望更正。 1、如果只是想将数组转换成List,可以用JDK中的java.util.Arrays类:...
  • Victor_Cindy1
  • Victor_Cindy1
  • 2016-01-04 21:48:15
  • 2858

Arrays.asList传入参数的问题

Arrays.asList传参问题 java varargs与auto boxing
  • champgauss
  • champgauss
  • 2015-12-05 10:50:38
  • 1581

工具类Arrays.asList();方法的一些坑

关于Arrays.asList();方法一些需要注意的地方
  • dzgt10076
  • dzgt10076
  • 2017-03-30 12:19:12
  • 247
    个人资料
    持之以恒
    等级:
    访问量: 544
    积分: 360
    排名: 9万+
    文章存档