2013-06-26 58 views
-3

我想實現Comparator比較object1和object2這兩個對象是複雜的對象(嵌套的對象)。實現比較器比較兩個對象

我的要求是,如果object2中有任何空值並且object1中的對應值爲null或非null,那麼我的比較器應該返回true,但是如果object2中的值不爲null並且對象1中的對應值不同或爲null那麼它應該返回false。

這些值可能是對象內部的對象或基礎對象的內部對象。

你能否建議我應該如何實現compareTo()方法,以便獲得我的願望結果。

+1

問題在哪裏?顯示一些代碼。 – NINCOMPOOP

+1

你期望這裏的人會爲你寫邏輯嗎?粘貼你的代碼,並顯示你已經解決了這個問題並詢問具體問題。 – vineet

+0

我在做反思。我被卡住了一點,這是我的錯誤,我沒有發佈代碼。但是我在做的時候得到了解決方案。它可能需要1小時才能解決問題。謝謝 – user2508111

回答

1

compareTo方法通常不返回true或false 比較器工作: 返回-1如果第一給定的對象是比第二 它返回1,如果該第一給定的對象比第二大小一個 並返回0,如果對象是即使

那會是這樣的(考慮到你想基於他們的字符串比較兩個對象):

if (a.getString() == null && a.getString() == null) { 
     return 0; //both of them are null: return equal 
    } 
    if (a.getString() == null) { 
     return 1; //first one is null: second is bigger 
    } 
    if (b.getString() == null) { 
     return -1; //second one is null: first is bigger 
    } 
    return a.getString().compareTo(b.getString()); //compare the two strings 
                //inside, with the already 
                //existing method from the 
                //String class 

考慮你沒有給任何代碼示例,這個代碼可以ld符合您的需求

+0

我在做反思。我被卡住了一點,這是我的錯誤,我沒有發佈代碼。但是我在做的時候得到了解決方案。它可能需要1小時才能解決問題。謝謝 – user2508111