fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Ideone
  6. {
  7. static class Entry {
  8. public Entry(String name, int id) {
  9. this.name = name;
  10. this.id = id;
  11. }
  12.  
  13. public String toString() { return "(" + name + "[" + id + "])"; }
  14. public boolean equals(Object o) { return o instanceof Entry && name.equals(((Entry)o).name) && id == ((Entry)o).id; }
  15. public int hashCode() {
  16. // System.out.println("hashing " + toString() + "...");
  17. return name.hashCode();
  18. }
  19.  
  20. private final String name;
  21. private final int id;
  22. }
  23. public static void main (String[] args) throws java.lang.Exception
  24. {
  25. Set<Entry> set = new HashSet<>();
  26. set.add(new Entry("foo", 42));
  27. set.add(new Entry("bar", 1337));
  28. set.add(new Entry("foo", -1));
  29. for(Entry e : set)
  30. System.out.print(" [" + e.hashCode() + "]" + e);
  31. System.out.println();
  32. }
  33. }
Success #stdin #stdout 0.06s 380224KB
stdin
Standard input is empty
stdout
 [101574](foo[-1]) [101574](foo[42]) [97299](bar[1337])