Используя CompareTo (String) для алфавитного размещения строк в массиве? - PullRequest
1 голос
/ 09 февраля 2012

В основном у меня есть массив сотрудников, в котором есть комиссионные, зарплата и почасовые сотрудники.Мне нужно отобразить алфавитный список сотрудников.Если фамилии совпадают, имена также должны быть в алфавитном порядке.Как мне это сделать.

1 Ответ

1 голос
/ 09 февраля 2012
Arrays.sort(employees, new Comparator<Employee>() {
  public int compare(Employee a, Employee b) {
    int cmp = a.getLastName().compareTo(b.getLastName());
    if (cmp == 0) {
      cmp = a.getFirstName().compareTo(b.getFirstName());
    }
    return cmp;
  }
});

Или, используя Гуава , чтобы получить что-то более читаемое и менее подверженное ошибкам,

Arrays.sort(employees, new Comparator<Employee>() {
  public int compare(Employee a, Employee b) {
    return ComparisonChain.start()
      .compare(a.getLastName(), b.getLastName())
      .compare(a.getFirstName(), b.getFirstName())
      .result();
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...