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 ]
これどうやってするの ?
インスタンス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);
}
インクリメントする必要がある部分が既知の[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);
}
from
とto
が ArrayList の有効なインデックスであると想定していますが、それらが配列の境界内にあるかどうかを常に確認する必要がありますヒント : ArrayList
メンバーへのインデックス付きアクセスを提供します。必要な要素を簡単にループできます。最後のn
要素をインクリメントするには、for
ループとリストのsize()
.