簡體   English   中英

比較Java中對象的更優雅方法

[英]More elegant way of comparing objects in Java

Java有一個接口Comparator<T> ,它具有方法int compare(T o1, T o2)

編輯:

我錯了:

返回的整數必須-1如果第一對象是小於第二個, 1如果第二個是小於第一個, 0如果他們相等。

文件狀態:

作為第一個參數小於,等於或大於第二個參數的負整數,零或正整數。

所以我重新表述我的問題:是否有一種比較對象的優雅方法,而不是牢牢記住comparator.compare(o1, o2) < 0實際上意味着第一個對象小於第二個對象?

比較你的陳述

如果第一個對象小於第二個對象,則返回的整數必須為-1;如果第二個對象小於第一個對象,則返回的整數必須為1;如果相等,則返回0。

與官方聲明

當第一個參數小於,等於或大於第二個參數時,返回負整數,零或正整數。

並注意唯一合適的常數為零。

比較方法的官方接口約定為:

當第一個參數小於,等於或大於第二個參數時,返回負整數,零或正整數。

盡管實際上您只需要三個值,但是可以使用此邏輯編寫優雅的代碼,如下所示:

public int compare(MyObject o1, MyObject o2){
    return o1.getIntValue() - o2.getIntValue();
}

在哪一行中,哪一個不僅給您提供哪個對象更大(或相等),甚至還給您一個對象大於另一個對象的數量。

(不考慮整數溢出。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM