水果店(集合HashMap的使用)
蒜头君经营着一个不大的水果店。他认为生存之道就是经营最受顾客欢迎的水果。现在他想要一份水果销售情况的明细表,这样就可以很容易掌握所有水果的销售情况了。蒜头君告诉你每一笔销售记录的水果名称,产地和销售的数量,请你帮他生成明细表。
输入格式
第一行是一个整数N(0<N≤1000),表示蒜头君有 N 次成功的交易。其后有 N行数据,每行表示一次交易,由水果名称(小写字母组成,长度不超过 100),水果产地(小写字母组成,长度不超过 100)和交易的水果数目(正整数,不超过1000)组成.
输出格式
请你输出一份排版格式正确(请分析样本输出)的水果销售情况明细表。这份明细表包括所有水果的产地、名称和销售数目的信息。水果先按产地分类,产地按字母顺序排列;同一产地的水果按照名称排序,名称按字母顺序排序。
样例输入
5 apple shandong 3 pineapple guangdong 1 sugarcane guangdong 1 pineapple guangdong 3 pineapple guangdong 1
样例输出
guangdong |----pineapple(5) |----sugarcane(1) shandong |----apple(3)
package 计蒜客; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class 水果店 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); HashMap<String, Integer> map=new HashMap<String, Integer>(); for(int i=0;i<n;i++){ String shuiguo=scan.next(); String chandi=scan.next(); int num=scan.nextInt(); if(map.containsKey(chandi+" "+shuiguo)){ map.put(chandi+" "+shuiguo, map.get(chandi+" "+shuiguo)+num); }else{ map.put(chandi+" "+shuiguo,num); } } String[] strs=new String[map.size()]; int i=0; for(Map.Entry<String, Integer> entry:map.entrySet()){ strs[i++]=entry.getKey(); } Arrays.sort(strs); // for(int j=0;j<strs.length;j++){ // System.out.println(strs[j]+" "+map.get(strs[j])); // } System.out.println(strs[0].substring(0, strs[0].indexOf(" "))); System.out.println(" |----"+strs[0].substring(strs[0].indexOf(" ")+1)+"("+map.get(strs[0])+")"); for(int j=1;j<strs.length;j++){ String str2_chandi=strs[j].substring(0, strs[j].indexOf(" ")); String str1_chandi=strs[j-1].substring(0, strs[j-1].indexOf(" ")); String str2_shuiguo=strs[j].substring(strs[j].indexOf(" ")+1); //String str1_shuiguo=strs[j-1].substring(strs[j-1].indexOf(" ")+1); if(str1_chandi.equals(str2_chandi)){ System.out.println(" |----"+str2_shuiguo+"("+map.get(strs[j])+")"); } else{ System.out.println(str2_chandi); System.out.println(" |----"+str2_shuiguo+"("+map.get(strs[j])+")"); } } } }