fork download
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.LinkedHashSet;
  4. import java.util.List;
  5. import java.util.Set;
  6. class M {
  7. @Override public int hashCode() {
  8. final int prime=31;
  9. int result=1;
  10. result=prime*result+Arrays.deepHashCode(b);
  11. return result;
  12. }
  13. @Override public boolean equals(Object obj) {
  14. if(this==obj) return true;
  15. if(obj==null) return false;
  16. if(getClass()!=obj.getClass()) return false;
  17. M other=(M)obj;
  18. if(!Arrays.deepEquals(b,other.b)) return false;
  19. return true;
  20. }
  21. int[][] b=new int[3][3];
  22. }
  23. class SetEquality {
  24. static List<Object> list(Object o) {
  25. ArrayList<Object> l=new ArrayList<>();
  26. l.add(o);
  27. return l;
  28. }
  29. static Set<Object> set(Object o) {
  30. Set<Object> l=new LinkedHashSet<>();
  31. l.add(o);
  32. return l;
  33. }
  34. public static void main(String[] args) {
  35. M f=new M();
  36. M g=new M();
  37. System.out.println(f.hashCode());
  38. System.out.println(g.hashCode());
  39. List<Object> listWithF=list(f);
  40. List<Object> listWithG=list(g);
  41. System.out.println("lists: "+listWithF.equals(listWithG));
  42. Set<Object> setWithF=set(f);
  43. Set<Object> setWithG=set(g);
  44. System.out.println("sets: "+setWithF.equals(setWithG));
  45. }
  46. }
Success #stdin #stdout 0.08s 380160KB
stdin
Standard input is empty
stdout
29612285
29612285
lists: true
sets: true