2017-02-05 70 views
-2

我有從分配我的工作訪問一個傳遞的對象

public class MyHugeInteger 
{ 

MyIntList list = new MyIntList(); 

    public int compareTo(MyHugeInteger hugeInt) 
    { 
     if (list.size() > this.list.size()) //this is where things don't work 
      return (-1); 
     if (list.size() < this.list.size()) 
      return (1); 
    } 

基本上是一個概念的問題,我需要能夠使用「名單」變量從傳遞中的變量該對象的版本能夠將其與當前對象的列表變量進行比較。

我以前遇到類似的問題,我的教授回答說:「同一類的對象可以訪問對方的私有數據成員,因此您可以從」this「訪問other.size,並且可以檢查Set大小的平等。「

這就是我想要給出的代碼中使用,但我發現了一個例子說,這將調用字段變量,已經只是說「名單」

我缺少的東西那叫一個?

+2

更改爲'hugeInt.list.size()> this.list.size()' –

回答

0

如果你想使用Java框架,旨在事情進行排序或使用compareTo方法,你需要在implements Comparable<MyHugeInteger>類。

public class MyHugeInteger implements Comparable<MyHugeInteger> 

然後,爲了修正這個錯誤,你需要使用參數對象,因爲this.list和不合格list是完全相同的對象。

還要考慮尺寸相等時會發生什麼。

提示:不需要自己重寫整數比較邏輯。

@Override 
public int compareTo(MyHugeInteger hugeInt) { 
    return Integer.compare(this.list.size(), hugeInt.list.size()); 
} 

如果您發現訂購錯誤,請乘以負數或翻轉參數。

+0

您仍然在使用this.list.size()在這裏,我遇到的問題 寫整數比較的邏輯是分配的一部分,也不是我問 –

+0

我不明白這個問題的一部分。是的,我正在使用它......這不是問題。你必須使用參數...這個答案有效,但另一個答案是'list.size()== this.list.size()'總是。 –

+0

巨大的整數和整數的列表不依賴於規模比較...這個答案的問題... – Aubin

0

註釋是正確的,hugeInt.list.size()> this.list.size(),而不是使用 '這個' 用於傳遞的對象。其中一個你想念的問題,當你超越問題

+0

我的回答將使用相同的邏輯「這一類的實例」,順便說一句 –