如何在Android中从ArrayList<Integer>中删除特定数据

4

我有一个ArrayList,里面包含一些值,如2,3,4,5,6。现在想要检查某个值是否存在,并删除该特定的值。请帮助我做到这一点。提前感谢。

我尝试过,

ArrayList<Integer> Positions=new ArrayList<Integer>();
Positions.remove(6);

但是它显示了一个错误。


这里的6是int类型,ArrayList是Integer类型。你也可以尝试使用Positions.contains(Integer(6)); - Ashwani
是的,我尝试了 Positions.contains(Integer(6)); 它可行,但如何从数组中删除6呢? - Vishnu
请按照以下方式进行操作。如果(Positions.contains(Integer(6))),则{Positions.remove(Integer(6));} - Ashwani
请务必学习命名规范... 类/项目名称使用大写字母。变量名称不要使用大写字母(例如Positions应该是positions)。在这里查看:http://www.slideshare.net/Shaon_sikdar/android-code-convention - Anders Metnik
2个回答

8

Positions.remove(6); 从特定位置删除项目。

所以首先您需要使用for循环比较数组列表中的项,并获取该项的位置,然后调用Positions.remove(该项在ArrayList中的位置)

尝试使用此代码。

ArrayList<Integer> positions = new ArrayList<Integer>();
positions.add(3); // add some sample values
positions.add(6); // add some sample values
positions.add(1); // add some sample values
positions.add(2); // add some sample values
positions.add(6);

for(int i=0;i<positions.size();i++)
{
    if(positions.get(i) == 6)
    {
        positions.remove(i);
    }
}

Log.i("========== After Remove ",":: "+positions.toString());

输出结果:I/========== 移除后 ( 309): :: [3, 1, 2]


谢谢 Chirag,你能帮我获取一个项的位置吗? - Vishnu
太好了,Chitag Raval,现在它可以工作了.. :) - Vishnu
我认为可以同时接受两个答案,并在第二个上打勾。我不知道第一个答案没有被选中。 - Vishnu
如何在数组中添加一个新项,如果它不存在? - Vishnu

5

试试这个:

ArrayList<Integer> positions = new ArrayList<Integer>();
positions.add(3); // add some sample values
positions.add(6); // add some sample values
positions.add(1); // add some sample values
positions.add(2); // add some sample values
int index = positions.indexOf(6); // finds the index of the first occurrence of 6
if (index >= 0) { // if not found, index will be -1
    positions.remove(index); // removes this occurrence
}

但是如果列表中有多个6怎么办? - Chirag
然后您将使用while循环来重复上述步骤,直到索引为-1为止。 - UgglyNoodle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接