-1

ArrayList の特定の部分の値を、指定された数値だけインクリメントする必要があります。

結果が次のよう[ 1 2 3 4 5 6 7 8 9 1 1 1 ] になるように、最後の3つの要素を2ずつ増やす必要があるとしましょう

[ 1 2 3 4 5 6 7 8 9 3 3 3 ]

これどうやってするの ?

4

3 に答える 3

5

インスタンスarrayListが含まれていると仮定します。ArrayList<Integer>

int startFrom = arrayList.size() - 3;
int upTo = arrayList.size();
int incrBy = 2;

for (int i = startFrom; i < upTo && i < arrayList.size(); i += 1) {
    int oldValue = arrayList.get(i);
    int newValue = oldValue + incrBy;
    arrayList.set(i, newValue);
}

または、よりコンパクトに (つまり、変数oldValueと をインライン化newValue):

for (int i = startFrom; i < upTo && i < arrayList.size(); i += 1) {
    arrayList.set(i, arrayList.get(i) + incrBy);
}
于 2013-10-05T15:11:48.717 に答える
1

インクリメントする必要がある部分が既知の[from, to]であると仮定します。ArrayList をループして、必要な数を追加するだけです (ArrayList 内の項目にはインデックスでアクセスできることに注意してください)。

arr - is ArrayList

number - インクリメントする数値です

for (int i = from; i < to; i++){
       int item = arr.get(i);
       arr.set(i,item+number);
    }
  • ここでは、fromtoが ArrayList の有効なインデックスであると想定していますが、それらが配列の境界内にあるかどうかを常に確認する必要があります
于 2013-10-05T15:16:35.500 に答える
0

ヒント : ArrayListメンバーへのインデックス付きアクセスを提供します。必要な要素を簡単にループできます。最後のn要素をインクリメントするには、forループとリストのsize().

于 2013-10-05T15:13:52.707 に答える