我有一个ArrayList<String>
包含 n 个元素的 A,以及一个ArrayList<Integer>
包含 A 中需要删除的索引的 B。如何删除这些索引?在我删除这样的索引后 : A.remove(index)
,然后 A 的大小更小,其他索引不再位于同一位置。
欢迎任何想法。
您必须对它们进行排序(Collections.sort() 可能适用于整数数组列表),并首先删除较大的索引。
如果您的列表中没有重复的字符串,您可以创建一个包含要删除的对象的列表,然后为您的数组列表调用 removeAll(Collection c) 方法。
ifstringList
是您的字符串列表,并且indexList
是您的索引列表:
List<String> toRemove = new ArrayList<String>();
for(Integer i : indexList){
toRemove.add(stringList.get(i));
}
stringList.removeAll(toRemove);
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 ++;
}
}
}
试试这个。