Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列表上的retainAll()在java中导致错误_Java_List_Collections_Set - Fatal编程技术网

列表上的retainAll()在java中导致错误

列表上的retainAll()在java中导致错误,java,list,collections,set,Java,List,Collections,Set,我对java中的retainAll()有一些问题。我有一个如下所示的有效列表。但是,当我尝试使用retailAll()查找两者之间的交点时,会导致以下错误 String[] a = {"3", "3", "10", "4", "2", "8"}; String[] b = {"10", "4", "12", "3", "23", "1", "8"}; List<String> aList = Arrays.asList(a); Lis

我对java中的retainAll()有一些问题。我有一个如下所示的有效列表。但是,当我尝试使用retailAll()查找两者之间的交点时,会导致以下错误

            String[] a = {"3", "3", "10", "4", "2", "8"};
    String[] b = {"10", "4", "12", "3", "23", "1", "8"};
    List<String> aList =  Arrays.asList(a);
    List<String> bList =  Arrays.asList(b);
    aList.retainAll(bList);

谢谢

数组。asList
返回固定大小的列表。因此不能添加或删除元素

使用接受集合的
ArrayList
构造函数

List<String> aList = new ArrayList<>(Arrays.asList(a));
List-aList=newarraylist(Arrays.asList(a));

错误在于提供的列表没有实现所需的方法。这可能是因为Arrays.asList只是一个用于处理重要函数的存根列表。您可能需要执行以下操作

List<String> aList = new ArrayList<String>(Arrays.asList(a));
List<String> bList =  Arrays.asList(b);
aList.retainAll(bList);
List-aList=newarraylist(Arrays.asList(a));
List bList=Arrays.asList(b);
保留列表(bList);

详细说明一下:
数组返回的实现。asList()
实际上返回数组的
List
视图。如果调用者保留了对数组的引用,他可以通过
列表
包装器查看内容更改。这就是为什么它是固定大小的;这个实现不能抛弃它的支持数组而创建一个更大的数组,就像
ArrayList
那样。
List<String> aList = new ArrayList<String>(Arrays.asList(a));
List<String> bList =  Arrays.asList(b);
aList.retainAll(bList);