package exercise0;

import java.util.Map;
import java.util.TreeMap;

import jp.avaj.lib.debug.L;

/**
 * 商品の売上データの管理 - Mapを使用する
  以下のような支店ごとの商品の売上データがある、指定された支店と商品名の売上を求める
             支店A   支店B   支店C  支店D
  商品A:     100     150     120    110
  商品B:     150     110      90    130
  商品C:     120     200     210    170
  商品D:      80      70      90    110
 */
class E0500 {
  public static void main(String[] args) {
    // 売上データの作成
    Map<String,Map<String,Integer>> salesData;
    salesData = createSalesData();
    //
    // 売上データの確認 - 商品A,支店B
    Map<String,Integer> itemASales = salesData.get("商品A");
    Integer sales = itemASales.get("支店B");
    L.p(sales);
    // 売上データの確認 - 商品C,支店A
    Map<String,Integer> itemCSales = salesData.get("商品C");
    sales = itemCSales.get("支店A");
    L.p(sales);
  }

  // 売上データの作成
  // 戻り値は 商品名 ⇒ (支店名 ⇒ 売上)のMap
  private static Map<String,Map<String,Integer>> createSalesData() {
    String[][] data = new String[][]{
      {"商品A","支店A","100"},
      {"商品A","支店B","150"},
      {"商品A","支店C","120"},
      {"商品A","支店D","110"},
      {"商品B","支店A","150"},
      {"商品B","支店B","110"},
      {"商品B","支店C", "90"},
      {"商品B","支店D","130"},
      {"商品C","支店A","120"},
      {"商品C","支店B","200"},
      {"商品C","支店C","210"},
      {"商品C","支店D","170"},
      {"商品D","支店A", "80"},
      {"商品D","支店B", "70"},
      {"商品D","支店C", "90"},
      {"商品D","支店D","110"},
    };
    Map<String,Map<String,Integer>> salesData;
    salesData = new TreeMap<String,Map<String,Integer>>();
    for (int i=0; i<data.length; i++) {
      String item = data[i][0];
      String branch = data[i][1];
      Integer sales = Integer.parseInt(data[i][2]);
      // 商品のMAPを取出す
      Map<String,Integer> itemMap = salesData.get(item);
      if (itemMap == null) {
        itemMap = new TreeMap<String,Integer>();
        salesData.put(item,itemMap);
      }
      // 支店の売上を設定する
      itemMap.put(branch,sales);
    }
    return salesData;
  }
}
//---------------------------------------------------
//・目次 - 未経験者向け Java演習問題(制御構造とStringとjava.util)
//・目次 - Java入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------