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 void main (String[] args) throws java.lang.Exception
  11. {
  12. Object foo = new Object() {
  13. @Override
  14. public boolean equals(Object other) {
  15. return other == this;
  16. }
  17. @Override
  18. public int hashCode() {
  19. return 42;
  20. }
  21. };
  22. List<String> list = new ArrayList<>();
  23. for (int i = 0 ; i != 1000000 ; i++) {
  24. list.add(""+i+"-"+31*i);
  25. }
  26. for (Object o : list) {
  27. o.equals(foo);
  28. foo.equals(o);
  29. }
  30. long t1 = System.currentTimeMillis();
  31. boolean g1 = false;
  32. for (int i = 0 ; i != 5 ; i++) {
  33. for (Object o : list) {
  34. g1 |= o.equals(foo);
  35. }
  36. }
  37. long t2 = System.currentTimeMillis();
  38. boolean g2 = false;
  39. for (int i = 0 ; i != 5 ; i++) {
  40. for (Object o : list) {
  41. g2 |= foo.equals(o);
  42. }
  43. }
  44. long t3 = System.currentTimeMillis();
  45. System.out.println(t2-t1);
  46. System.out.println("Result: "+g1);
  47. System.out.println(t3-t2);
  48. System.out.println("Result: "+g2);
  49. }
  50. }
Success #stdin #stdout 0.3s 4386816KB
stdin
Standard input is empty
stdout
45
Result: false
34
Result: false