我有一个多图,其中包含一堆键和值。
private final Multimap<String, Process> processById = TreeMultimap.create();
现在对于相同的密钥,我可以拥有一堆Process
,这就是我在这里使用multimap的原因。现在我需要按Process
的降序对endTime
对象进行排序。对于迭代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);
答案 0 :(得分:1)
如果你必须乘以-1,最好只是反转字段。