按一个字段的降序对对象进行排序

sort an object in descending order of one field

我有一个 multimap,其中包含一堆键和值。

private final Multimap<String, Process> processById = TreeMultimap.create();

现在对于同一个键我可以有一堆 Process 所以这就是我在这里使用 multimap 的原因。现在我需要按照 endTime 的降序对 Process 对象进行排序。对于映射中的每个键,当我迭代 List<Process> 时,它应该按 endTime 的降序打印过程对象。所以我在这里实现了Comparable接口。

public final class Process implements Comparable<Process> {
  private final String clientId;
  private final long endTime;
  // .. more fields

  //... constructor, getters, toString methods

  @Override
  public int compareTo(Process o) {
    // is this logic right here?
    return Long.compare(this.endTime, o.endTime) * (-1);
  }
}

我的问题是 - 这是正确的做法还是我的逻辑有误?

Process process = getProcess(task);
String id = task.getId();
// populate multimap here
processById.put(id, process);

如果必须乘以 -1,最好只反转字段。