1

ArrayList<String>n 個の要素を含む A と、ArrayList<Integer>削除する必要がある A からのインデックスを含む B があります。これらのインデックスを削除するにはどうすればよいですか? この : のようなインデックスを削除するA.remove(index)と、 A のサイズが小さくなり、他のインデックスは同じ位置になくなります。

どんなアイデアでも大歓迎です。

4

4 に答える 4

3

リストに重複する文字列がない場合は、削除するオブジェクトを使用してリストを作成してから、配列リストのremoveAll(Collection c)メソッドを呼び出すことができます。

stringListが文字列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 に答える
3

それらを並べ替える必要があり (Collections.sort() は、おそらく整数の配列リストの場合はすぐに使用できます)、最初に大きなインデックスを削除することから始めます。

于 2012-10-29T16:05:43.890 に答える
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 に答える