fork download
  1. import java.util.*;
  2. import java.lang.*;
  3.  
  4. class Main
  5. {
  6. public static class Class1 implements Comparable<Object>{
  7. String name;
  8.  
  9. public Class1(String name) {
  10. super();
  11. this.name = name;
  12. }
  13.  
  14. @Override
  15. public String toString() {
  16. return "Class1 [name=" + name + "]";
  17. }
  18.  
  19. @Override
  20. public int compareTo(Object o) {
  21. return (o instanceof Class1)?compareTo((Class1)o):compareTo((Class2)o);
  22. }
  23.  
  24. public int compareTo(Class1 o){
  25. return name.compareTo(o.name);
  26. }
  27.  
  28. public int compareTo(Class2 o){
  29. return name.compareTo(o.name2);
  30. }
  31.  
  32. }
  33. public static class Class2 implements Comparable<Object>{
  34. String name2;
  35.  
  36. public Class2(String name) {
  37. super();
  38. this.name2 = name;
  39. }
  40.  
  41. @Override
  42. public String toString() {
  43. return "Class2 [name=" + name2 + "]";
  44. }
  45.  
  46. @Override
  47. public int compareTo(Object o) {
  48. return (o instanceof Class1)?compareTo((Class1)o):compareTo((Class2)o);
  49. }
  50.  
  51. public int compareTo(Class1 o){
  52. return name2.compareTo(o.name);
  53. }
  54.  
  55. public int compareTo(Class2 o){
  56. return name2.compareTo(o.name2);
  57. }
  58.  
  59. }
  60. public static void main (String[] args) throws java.lang.Exception
  61. {
  62. PriorityQueue<Object> queue=new PriorityQueue<Object>();
  63. Object o1=new Class1("o1");
  64. Object o2=new Class2("o2");
  65. Object o3=new Class1("o3");
  66. Object o4=new Class1("o4");
  67. Object o5=new Class2("o5");
  68. Object o6=new Class2("o6");
  69. Object o7=new Class1("o7");
  70. Object o8=new Class2("o8");
  71. Object o9=new Class1("o9");
  72. Object o0=new Class1("o0");
  73. queue.add(o7);
  74. queue.add(o4);
  75. queue.add(o3);
  76. queue.add(o8);
  77. queue.add(o5);
  78. queue.add(o1);
  79. queue.add(o2);
  80. queue.add(o9);
  81. queue.add(o0);
  82. queue.add(o6);
  83.  
  84. Object last;
  85. while ((last = queue.poll()) != null) {
  86. System.out.println(last);
  87. }
  88. }
  89. }
Success #stdin #stdout 0.07s 380160KB
stdin
Standard input is empty
stdout
Class1 [name=o0]
Class1 [name=o1]
Class2 [name=o2]
Class1 [name=o3]
Class1 [name=o4]
Class2 [name=o5]
Class2 [name=o6]
Class1 [name=o7]
Class2 [name=o8]
Class1 [name=o9]