Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.52 KB | None | 0 0
  1. import java.util.Collections;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6. import java.util.stream.Collectors;
  7. import java.util.stream.Stream;
  8.  
  9.  
  10. public class MapToMapOperation {
  11.  
  12. private Map<String, Map<String, Integer>> mapToMap = new HashMap<>();
  13.  
  14. MapToMapOperation() {
  15. Map<String, Integer> dogMap = new HashMap<>();
  16. dogMap.put("A", 50);
  17. dogMap.put("B", 35);
  18. dogMap.put("D", 40);
  19. dogMap.put("C", 35);
  20. mapToMap.put("dog", dogMap);
  21.  
  22. Map<String, Integer> catMap = new HashMap<>();
  23. catMap.put("C", 35);
  24. catMap.put("D", 40);
  25. catMap.put("M", 40);
  26. catMap.put("E", 70);
  27. catMap.put("H", 35);
  28. mapToMap.put("cat", catMap);
  29.  
  30. Map<String, Integer> donkeyMap = new HashMap<>();
  31. donkeyMap.put("A", 52);
  32. donkeyMap.put("E", 70);
  33. donkeyMap.put("F", 80);
  34. donkeyMap.put("S", 40);
  35. donkeyMap.put("G", 90);
  36. mapToMap.put("donkey", donkeyMap);
  37. }
  38.  
  39. public Map<String, Integer> get(String type) {
  40. return mapToMap.get(type);
  41. }
  42.  
  43. public List<String> get(Map<String, Integer> map, Integer value) {
  44. if (!map.containsValue(value)) {
  45. return Collections.emptyList();
  46. }
  47. return keys(map, value).collect(Collectors.toList());
  48. }
  49.  
  50. public Map<String, List<String>> getFullMapBasedOnValue(Integer value) {
  51. Map<String, List<String>> resultMap = new HashMap<String, List<String>>();
  52. java.util.Iterator<Entry<String, Map<String, Integer>>> iterator =
  53. mapToMap.entrySet().iterator();
  54. while (iterator.hasNext()) {
  55. Map.Entry<String, Map<String, Integer>> entry = iterator.next();
  56. Map<String, Integer> subMap = entry.getValue();
  57. if (subMap.containsValue(value)) {
  58. List<String> list = keys(subMap, value).collect(Collectors.toList());
  59. resultMap.put(entry.getKey(), list);
  60. }
  61. }
  62. return resultMap;
  63. }
  64.  
  65. public <K, V> Stream<K> keys(Map<K, V> map, V value) {
  66. return map.entrySet().stream().filter(entry -> value.equals(entry.getValue())).map(Map.Entry::getKey);
  67. }
  68.  
  69. public static void main(String[] args) {
  70. MapToMapOperation mapOp = new MapToMapOperation();
  71. mapOp.get("dog").forEach((s, k) -> System.out.println(s + " " + k));
  72.  
  73. System.out.println(mapOp.get(mapOp.get("cat"), 35));
  74.  
  75. System.out.println(mapOp.getFullMapBasedOnValue(40));
  76. }
  77.  
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement