使用compareTo(String)按字母顺序排列数组中的字符串?

时间:2012-02-08 23:30:06

标签: java arrays compare

基本上我有一个员工阵列,有佣金,薪水和小时工。我需要显示一个按字母顺序排列的员工列表。如果姓氏相同,则名字也需要按字母顺序排列。我该怎么做呢。

1 个答案:

答案 0 :(得分:1)

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;
  }
});

或者,使用Guava来获得更具可读性且不易出错的内容,

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();
  }
});