1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| public class CodingSkills { public static void main(String[] args) { String[] toPurchase=new String[]{"青菜","胡萝卜","牛肉","玉米","排骨"}; Map<String, Map<String, Double>> vegetableMarket = getMarketPrice(); Map<String, Object[]> finallyPurchase = new HashMap<>(); GetFinallyPurchase(vegetableMarket, toPurchase, finallyPurchase); }
private static void GetFinallyPurchase(Map<String, Map<String, Double>> vegetableMarket, String[] toPurchase, Map<String, Object[]> finallyPurchase) { for (String market : vegetableMarket.keySet()) { Map<String,Double> cur= vegetableMarket.get(market); for (String vName : toPurchase) { if (cur.containsKey(vName)){ if (!finallyPurchase.containsKey(vName)){ finallyPurchase.put(vName,new Object[]{market,cur.get(vName)}); }else { Object[] market2price = finallyPurchase.get(vName); if ((double)market2price[1]>cur.get(vName)){ finallyPurchase.put(vName,new Object[]{market,cur.get(vName)}); } } } } } }
private static Map<String, Map<String, Double>> getMarketPrice() { Map<String, Map<String,Double>> vegetableMarket = new HashMap<>(); HashMap<String,Double> marketA=new HashMap<>(); marketA.put("青菜",1.8); marketA.put("胡萝卜",2.0); marketA.put("玉米",2.0); marketA.put("牛肉",32.0); marketA.put("排骨",28.0); vegetableMarket.put("marketA",marketA);
HashMap<String,Double> marketB=new HashMap<>(); marketB.put("青菜",1.9); marketB.put("胡萝卜",1.5); marketB.put("玉米",4.0); marketB.put("牛肉",35.0); marketB.put("排骨",25.0); vegetableMarket.put("marketB",marketB);
HashMap<String,Double> marketC=new HashMap<>(); marketC.put("青菜",1.2); marketC.put("胡萝卜",1.5); marketC.put("玉米",5.0); marketC.put("牛肉",32.8); marketC.put("排骨",22.0); vegetableMarket.put("marketC",marketC); return vegetableMarket; } }
|