Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.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
如何在java中从列表中删除元素_Java_Android_Arrays - Fatal编程技术网

如何在java中从列表中删除元素

如何在java中从列表中删除元素,java,android,arrays,Java,Android,Arrays,我是雷格。在java中,我需要从列表中删除一个元素。当我尝试从列表中删除元素时,出现不受支持的异常。代码如下: String[] str_array = {"abc","def","ght"}; List<String> results = Arrays.asList(str_array); String tobeRemovedItem=""; for(int i=0;i<results.size();i++){ if(results.get(i).equalsIgn

我是雷格。在java中,我需要从列表中删除一个元素。当我尝试从列表中删除元素时,出现不受支持的异常。代码如下:

String[] str_array = {"abc","def","ght"};
List<String> results = Arrays.asList(str_array);
String tobeRemovedItem="";
for(int i=0;i<results.size();i++){ 
    if(results.get(i).equalsIgnoreCase(searchString)) {
        tobeRemovedItem=results.get(i);
    }
}
if(!TextUtils.isEmpty(tobeRemovedItem)) {
    results.remove(tobeRemovedItem);     // I am getting exception here.
}
String[]str_数组={“abc”、“def”、“ght”};
列表结果=Arrays.asList(str_数组);
字符串tobeRemovedItem=“”;

对于(int i=0;i数组返回的列表大小。asList
无法更改。您可以执行以下操作:

List<String> results = new ArrayList<>(Arrays.asList(str_array));
List results=newarraylist(Arrays.asList(str_array));

数组返回的列表类型。asList不支持
删除操作。因此出现异常

您可以改用
java.util.ArrayList

List<String> results = new ArrayList<String>(Arrays.asList(str_array));
List results=newarraylist(Arrays.asList(str_array));

通常,
UnsupportedOperationException
由接口(或具有抽象方法的类的子类)的实现引发,其中实现者不希望支持该特定方法

也就是说,要在将来调试这些问题,请检查您正在使用的实现—在本例中,它是通过中的
Arrays.asList()
方法提供的。在这里,您可以看到它表示不支持向列表中添加或删除项


如果必须添加和删除项,则可以将调用包装到列表的ArrayList实现中,该实现支持此类修改(如Banthar和khelwood所建议的)。将列表作为输入,并复制其中的元素。

已回答,但现在没有
.asList()的间接数据结构。

List results=new ArrayList();
addAll(结果,str_数组);

.asList由数组支持,因此您可以在修改列表时修改原始数组。反之亦然,您不能增加或缩小列表,因为在java中数组是固定的,因此需要交换备份的数组对象。

这与
数组的大小无关。\asList
。这是因为返回的
列表
不能不能修改。@LuiggiMendoza您可以使用
set()
方法修改此列表。这只是禁用的大小更改方法。Arrays.asList()返回数组$ArrayList,它是一个固定大小的数组,类似于固定大小的数组。您可以修改的是支持数组(通过
set
方法完成)但是,作为<代码>列表它不支持添加/删除操作。@ KUMARABHANV实际上是 >数组$ARAYLIST/<代码>直接使用作为参数传递的数组。请考虑使用更多空白。谢谢。
List<String> results = new ArrayList<>();
Collections.addAll(results, str_array);