[Dart]リスト(配列)の要素を上書きするには?

Dart

どうも、ちょげ(@chogetarou)です。

リストの要素を上書きする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

リストの要素を上書きする方法は、3つあります。

[]

1つ目は、[]を使う方法です。

まず、list[index]のように、リストの要素にアクセスします。

そして、リストの要素に上書きする値を代入します。

list[index] = newValue //indexの要素を、newValueで更新

使用例

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  numbers[1] = 10;
  numbers[3] = 10;
  
  print(numbers); //[1, 10, 3, 10, 5]
}

replaceRange

2つ目は、replaceRangeメソッドを使う方法です。

まず、リストからreplaceRangeメソッドを呼び出します。

そして、replaceRangeメソッドの第1引数に範囲の最初の位置、第2引数に範囲の終わりの位置を指定します。

replaceRangeメソッドの第3引数には、上書きする値をリストで指定します。

//startからendまでの範囲を、第3引数のリストの要素で上書き
list.replaceRange(start, end, [value1, value2, ・・・])

replaceRangeメソッドは、呼び出したリストを上書きします。

replaceRangeメソッドの第3引数のリストの要素数が、範囲の要素数より多い場合は、新しい要素が追加されます。

範囲の要素数より少ない場合は、足りない分の要素が削除されます。

使用例

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  numbers.replaceRange(1, 4, [10, 10, 10]);
  
  print(numbers); //[1, 10, 10, 10, 5]
}

map

3つ目は、mapメソッドを使う方法です。

まず、リストからmapメソッドを呼び出します。

そして、mapメソッドの引数にコールバック関数を指定します。

引数のコールバック関数で、新しい値を返します。

list.map((item) => newValue);

mapメソッドのコールバック関数の引数では、リストの要素を取り出します。

使用例

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  numbers = numbers.map((num) => num * 2).toList();
  
  print(numbers); //[2, 4, 6, 8, 10]
}

まとめ

リストの要素を上書きする方法は、次の3つです。

  • []を使う方法
  • replaceRangeメソッドを使う方法
  • mapメソッドを使う方法

コメント

タイトルとURLをコピーしました