fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static Map<String, List<String>> inverse(Map<String, String> m)
  11. {
  12. Map<String, List<String>> r = new HashMap<>();
  13. for (String k : m.keySet())
  14. {
  15. String s = m.get(k);
  16. if (r.get(s) == null)
  17. r.put(s, new ArrayList<>());
  18. r.get(s).add(k);
  19. }
  20. return r;
  21. }
  22. public static void main (String[] args) throws java.lang.Exception
  23. {
  24. Map<String, String> map = new HashMap<>();
  25. map.put("Clyde", "blue");
  26. map.put("Sarah", "blue");
  27. map.put("Fred", "green");
  28. map.put("Derp", "green");
  29. map.put("Barney", "yellow");
  30.  
  31. System.out.println("Original:\n{");
  32. for (String key : map.keySet())
  33. System.out.println("\t" + key + " : " + map.get(key));
  34. System.out.println("}\n\nInverse:\n{");
  35. Map<String, List<String>> results = inverse(map);
  36.  
  37. for (String key : results.keySet())
  38. {
  39. System.out.println("\t" + key + " : " + results.get(key));
  40. }
  41. System.out.println("}");
  42. }
  43. }
Success #stdin #stdout 0.04s 711168KB
stdin
Standard input is empty
stdout
Original:
{
	Clyde : blue
	Barney : yellow
	Sarah : blue
	Fred : green
	Derp : green
}

Inverse:
{
	green : [Fred, Derp]
	blue : [Clyde, Sarah]
	yellow : [Barney]
}