我正在处理我正在处理的作业中的概念问题
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);
}
基本上,我需要能够使用传递的对象版本中的'list'变量,以便能够将它与当前对象的列表变量进行比较。
之前我遇到过类似的问题,我的教授回答说“同一个类的对象可以访问彼此的私人数据成员。所以你可以从”这个“访问other.size并且可以检查Set sizes为了平等。“
这就是我在给出的代码中尝试使用的内容,但是我找到了一个例子,说这将调用字段变量,只是通过说'list'来调用的那个
我错过了什么吗?
答案 0 :(得分: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());
}
乘以负数或翻转参数,如果您发现排序错误。
答案 1 :(得分:0)
评论是对的,hugeInt.list.size()&gt; this.list.size()而不是使用&#39;这个&#39;对于传递的对象。当你过度思考这个问题时,你会错过的其中一件事