- リンクを取得
- ×
- メール
- 他のアプリ
Map<String, Integer>
を初期化する方法は以下のように複数のアプローチがあります。それぞれの例を説明します。
1. 空のマップを初期化
Map<String, Integer> myMap = new Map<String, Integer>();
空のマップを作成し、必要に応じて後でキーと値を追加します。
2. 静的初期化子を使用
以下のように静的リテラルで初期値を指定できます。
Map<String, Integer> myMap = new Map<String, Integer>{ 'Apple' => 10, 'Banana' => 20, 'Cherry' => 30 };
解説:
'Apple' => 10
は、キー'Apple'
に値10
を割り当てます。- この形式は簡潔で見やすいため、初期値がある場合に便利です。
3. 別のデータ構造を変換して初期化
たとえば、リストやその他のデータ構造からマップを作成できます。
例: リストから変換
List<String> fruits = new List<String>{'Apple', 'Banana', 'Cherry'}; Map<String, Integer> myMap = new Map<String, Integer>(); for (String fruit : fruits) { myMap.put(fruit, fruit.length()); // キーは果物の名前、値は文字数 }
このコードはリストを反復処理して、キーとしてリストの要素、値として文字数を追加しています。
4. Apex クラスのメソッド内で生成
カスタムメソッドを使ってマップを動的に生成できます。
例: ヘルパーメソッドを利用
public Map<String, Integer> generateMap() { Map<String, Integer> mapData = new Map<String, Integer>(); mapData.put('Dog', 1); mapData.put('Cat', 2); mapData.put('Bird', 3); return mapData; } // 呼び出し例 Map<String, Integer> myMap = generateMap();
5. Map の値をインクリメント
マップを初期化して値を操作する例です。
Map<String, Integer> myMap = new Map<String, Integer>{ 'A' => 1, 'B' => 2 }; // 値をインクリメント myMap.put('A', myMap.get('A') + 1); // A の値は 2 に myMap.put('C', 1); // 新しいキー C を追加 System.debug(myMap); // 出力: {A=2, B=2, C=1}
6. null 値を許容しないチェック
Map
に null 値を許容しないケースを追加することも可能です。
Map<String, Integer> myMap = new Map<String, Integer>{ 'Alpha' => 1, 'Beta' => 2 }; if (!myMap.containsKey('Gamma')) { myMap.put('Gamma', 0); // デフォルト値を設定 }
まとめ
状況に応じて以下の方法を使い分けましょう:
- 初期値がある場合は 静的リテラル。
- データを動的に追加する場合は for ループ や カスタムメソッド。
- データ変換が必要な場合は リストなどから変換。
コメント
コメントを投稿