1

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

欢迎任何想法。

4

4 回答 4

3

您必须对它们进行排序(Collections.sort() 可能适用于整数数组列表),并首先删除较大的索引。

于 2012-10-29T16:05:43.890 回答
3

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

ifstringList是您的字符串列表,并且indexList是您的索引列表:

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

for(Integer i : indexList){
 toRemove.add(stringList.get(i));
}
stringList.removeAll(toRemove);
于 2012-10-29T16:38:18.210 回答
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 ++;
    }
                                }
    }

试试这个。

于 2012-10-29T16:10:14.253 回答
0

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

于 2012-10-29T16:11:20.503 回答