Tôi muốn thực hiện một java.util.Comparator
với Long
:Chuyển đổi dài để int, giữ tích cực/tiêu cực/0
new Comparator<Long>() {
public int compare(Long l1, Long l2) {
// (*)
}
}
tôi có một giải pháp với nhà điều hành ?:
:
return l1==l2 ? 0 : (l1>l2 ? 1 : -1);
Nhưng tôi tự hỏi, nếu có là cách nào khác để thực hiện nó.
(Tôi đã thử return (int)(l1-l2)
, nhưng không chính xác).
Tại sao bạn muốn thay đổi triển khai của mình? Đung vậy. – dtech
'return (int) Math.signum (l1-l2)'? – assylias
@assylias Bạn sau đó chuyển đổi một dài thành một đôi, và một đôi trở lại một int một lần nữa. Ngoài ra giải pháp đó có thể không chính xác cho tất cả các dài (ví dụ trở về 0 trên 2^60 và 2^60-1) – dtech