Java tutorial
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; enum Level { HIGH, MEDIUM, LOW; } class Person { private Level severity; private String name; public Person(Level severity, String name) { super(); this.severity = severity; this.name = name; } public Level getSeverity() { return severity; } public void setSeverity(Level severity) { this.severity = severity; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Main { public static void main(String[] args) { Person one = new Person(Level.HIGH, "A"); Person two = new Person(Level.MEDIUM, "B"); Person three = new Person(Level.LOW, "C"); Person four = new Person(Level.HIGH, "D"); Person five = new Person(Level.MEDIUM, "E"); Person six = new Person(Level.LOW, "F"); Person seven = new Person(Level.LOW, "G"); List<Person> persons = new ArrayList<Person>(); persons.add(one); persons.add(two); persons.add(three); persons.add(four); persons.add(five); persons.add(six); persons.add(seven); Collections.sort(persons, new Comparator<Person>() { @Override public int compare(Person person1, Person person2) { if (person1.getSeverity() == person2.getSeverity()) { return person1.getName().compareTo(person2.getName()); } else { return person1.getSeverity().compareTo(person2.getSeverity()); } } }); for (Person person : persons) { System.out.println(person.getName() + " " + person.getSeverity()); } } }