从android中的arraylist中删除多个对象

时间:2012-10-29 16:04:23

标签: android arraylist

我有一个包含n个元素的ArrayList<String> A,以及一个包含我需要删除的A的索引的ArrayList<Integer> B.如何删除这些索引?删除这样的索引后A.remove(index),然后A的大小变小,其他索引不再位于同一位置。

欢迎任何想法。

4 个答案:

答案 0 :(得分:3)

你必须对它们进行排序(Collections.sort()可能是开箱即用的整数arraylist),首先删除较大的索引。

答案 1 :(得分:2)

如果列表中没有重复的字符串,则可以创建包含要删除的对象的列表,然后为数组列表调用removeAll(Collection c)方法。

如果stringList是包含字符串的列表,indexList是您的索引列表:

List<String> toRemove = new ArrayList<String>();

for(Integer i : indexList){
 toRemove.add(stringList.get(i));
}
stringList.removeAll(toRemove);

答案 2 :(得分:0)

    for(int i = 0; i < arrayListInt.size(); i++){
    int arrayIndexInIntArray = arrayListInt.get(i);
    int arrayIndexToRemove = 0;
        for (Iterator iterator = arrrayList.getIterator(); iterator.hasNext();) {

                                    String tempString = (String) iterator.next();
                                    if (arrayIndexInIntArray == arrayIndexToRemove) { //Some condition
                                        iterator.remove();//Remove the value at the current iterator
break;
                                    }
arrayIndexToRemove ++;
    }
                                }
    }

试试这个。

答案 3 :(得分:0)

您正在寻找的行为最好使用不同的数据结构来实现。我自己想到了HashMap(另请参阅:Map)。