fork(1) download
  1. import java.util.ArrayList;
  2. import java.util.Collections;
  3.  
  4. class b implements Comparable<c> {
  5. String str1;
  6.  
  7. b(String str1) {
  8. this.str1 = str1;
  9. }
  10.  
  11. public int compareTo(c object) {
  12. return str1.compareTo(object.str1);
  13. }
  14. }
  15.  
  16. class c implements Comparable<b> {
  17. String str1;
  18.  
  19. c(String str1) {
  20. this.str1 = str1;
  21. }
  22.  
  23. public int compareTo(b object) {
  24. return str1.compareTo(object.str1);
  25. }
  26. }
  27.  
  28. public class Main {
  29.  
  30. public static void main(String[] args) {
  31. b obj1 = new b("monster");
  32. c obj2 = new c("aman");
  33. b obj3 = new b("hello");
  34. c obj4 = new c("world");
  35.  
  36. ArrayList list = new ArrayList();
  37. list.add(obj1);
  38. list.add(obj2);
  39. list.add(obj3);
  40. list.add(obj4);
  41. System.out.println("unsorted list = "+list);
  42. Collections.sort(list);
  43. System.out.println("sorted list = "+list);
  44. }
  45. }
Runtime error #stdin #stdout #stderr 0.08s 380160KB
stdin
Standard input is empty
stdout
unsorted list = [b@eb3c84, c@1d2162c, b@1adceb8, c@1debcf3]
stderr
Exception in thread "main" java.lang.ClassCastException: b cannot be cast to c
	at b.compareTo(Main.java:4)
	at java.util.ComparableTimSort.binarySort(ComparableTimSort.java:232)
	at java.util.ComparableTimSort.sort(ComparableTimSort.java:158)
	at java.util.ComparableTimSort.sort(ComparableTimSort.java:146)
	at java.util.Arrays.sort(Arrays.java:472)
	at java.util.Collections.sort(Collections.java:155)
	at Main.main(Main.java:42)