fork(1) download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. public static void main (String[] args) throws java.lang.Exception
  8. {
  9. ProductCategoryMap pcMap = new ProductCategoryMap();
  10.  
  11. pcMap.put("Electronic", "ph", 144);
  12. pcMap.put("Electronic", "jp", 120);
  13.  
  14. List<String> availability = pcMap.getAvailability("Electronic");
  15. System.out.println("category Electronic is available in the following countries: "+String.join(", ",availability));
  16.  
  17. int catId_ph = pcMap.getCategoryId("Electronic", "ph");
  18. System.out.println("['Electronic', 'ph'] -> "+catId_ph);
  19.  
  20. int catId_jp = pcMap.getDestCatId("ph", "jp", catId_ph);
  21. System.out.println("['ph', '"+catId_jp+"'] -> "+catId_jp);
  22. }
  23. }
  24.  
  25. class ProductCategoryMap
  26. {
  27. Map<String,List<String>> prodMap;
  28. Map<String,String> codeMap;
  29. Map<String,Integer> catMap;
  30.  
  31. public ProductCategoryMap()
  32. {
  33. prodMap = new HashMap<>();
  34. codeMap = new HashMap<>();
  35. catMap = new HashMap<>();
  36. }
  37.  
  38. public void put(String category, String region, int code)
  39. {
  40. if(!prodMap.containsKey(category))
  41. {
  42. prodMap.put(category, new ArrayList<>());
  43. }
  44. prodMap.get(category).add(region);
  45.  
  46. catMap.put(category+region, code);
  47. codeMap.put(region+code, category);
  48. }
  49.  
  50. public String getCategory(String country, int catId)
  51. {
  52. return codeMap.get(country+catId);
  53. }
  54.  
  55. public int getCategoryId(String category, String country)
  56. {
  57. return catMap.get(category+country);
  58. }
  59.  
  60. public int getDestCatId(String srcCountry, String destCountry, int srcCatId)
  61. {
  62. String category = getCategory(srcCountry, srcCatId);
  63. return getCategoryId(category, destCountry);
  64. }
  65.  
  66. public List<String> getAvailability(String category)
  67. {
  68. return prodMap.get(category);
  69. }
  70. }
  71.  
  72.  
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
category Electronic is available in the following countries: ph, jp
['Electronic', 'ph'] -> 144
['ph', '120'] -> 120