|
For a list that contains the following classes: class Bar {} class Baz extends Bar {} class SubBaz extends Baz {} class Foo extends Bar {} class SubFoo extends Foo {}
List list = new ArrayList(); list.add(Bar.class); list.add(Foo.class); list.add(Baz.class); list.add(SubFoo.class); list.add(SubBaz.class); Collections.sort(list, new ClassHierarchyComparator());
output of sorting: Foo,Baz,SubFoo,SubBaz,Bar
We don' t have subclasses before superclasses.
If we use this as the last line of the comparator: return c2.getName().compareTo(c1.getName());
output of sorting: SubFoo,SubBaz,Foo,Baz,Bar,
|