如何在java中从列表中删除元素
我是雷格。在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
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);