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. /**
  11.   * Class representing key in HashMap should be immutable.
  12.   */
  13. private final static class MyObject {
  14. private final String fieldString;
  15. private final int fieldInt;
  16.  
  17. public MyObject(final String fieldString, final int fieldInt) {
  18. this.fieldString = fieldString;
  19. this.fieldInt = fieldInt;
  20. }
  21.  
  22. @Override
  23. public boolean equals(final Object o) {
  24. if (this == o)
  25. return true;
  26. if (o == null || getClass() != o.getClass())
  27. return false;
  28.  
  29. final MyObject myObject = (MyObject) o;
  30.  
  31. return Objects.equals(fieldInt, myObject.fieldInt) &&
  32. Objects.equals(fieldString, myObject.fieldString);
  33. }
  34.  
  35. @Override
  36. public int hashCode() {
  37. return Objects.hash(fieldString, fieldInt);
  38. }
  39. }
  40.  
  41. public static void main(String[] args) throws Exception {
  42. HashMap<MyObject, Object> map = new HashMap<>();
  43.  
  44. map.put(new MyObject("a", 1), new Object());
  45. map.put(new MyObject("b", 1), new Object());
  46. map.put(new MyObject("a", 2), new Object());
  47. map.put(new MyObject("b", 2), new Object());
  48. map.put(new MyObject("a", 1), new Object());
  49.  
  50. if (map.size() == 4) {
  51. System.out.println("Correct number of elements in map");
  52. } else {
  53. System.out.println("Incorrect number of elements in map");
  54. }
  55. }
  56. }
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
Correct number of elements in map