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入門
//・目次 - ビジネスパーソンの常識と非常識
//・目次 - 論理・発想・思考についての考察と鍛え方
//・目次 - 単なる雑談
//---------------------------------------------------