Java 作为空堆的最小元素返回什么
我编写了这个简单的代码来检查二进制堆是否为空。我对返回有问题。它不能是:Java 作为空堆的最小元素返回什么,java,primitive,Java,Primitive,我编写了这个简单的代码来检查二进制堆是否为空。我对返回有问题。它不能是:null,void,或者什么都没有;它应该返回一些int,但我不知道是什么。那么,如果我想保持代码的简单性,我应该把什么放在那里呢?(我的意思是不使用Integer类或java.lang.Integer) 为无效值引发异常,并在调用时处理它 public int getMinimum() throws Exception { if (isEmpty()) throw new Exception("Heap i
null
,void
,或者什么都没有;它应该返回一些int,但我不知道是什么。那么,如果我想保持代码的简单性,我应该把什么放在那里呢?(我的意思是不使用Integer
类或java.lang.Integer
)
为无效值引发异常,并在调用时处理它
public int getMinimum() throws Exception {
if (isEmpty())
throw new Exception("Heap is Empty");
else
return data[0];
}
当得到最小值时
try{
int i = getMinimum();
System.out.println("Minimum is :" + i);
}catch(Exception e){
System.out.println(e.getMessage());
}
我只能帮助消除。。。java不是魔法。如果您将函数声明为返回“int”,那么编译器将使您返回int。 剩下有限的选择: 1) 抛出异常,并教用户将其与“isEmpty()”结合使用,例如: if(theHeap.isEmpty())System.out.println(“空”); else System.out.println(theHeap.getMinimum()) 2) 使用您不喜欢的整数(我猜是出于性能原因?) 3) 查找数据中不太可能存在的某些int值,例如,可能您不希望堆中始终包含Integer.MIN_值。
如果你的堆包含双精度,我推荐NaN 这就是java语法中可用的全部内容,很抱歉它不是地面制动…int是一个原语,因此需要有一个值。
如果您真的想这样解决它,您需要指定一个永远不会出现在堆中的特定int值。您还可以尝试在堆为空时引发异常。我们可以简单地将其声明为“整数””而不是“int”,因此我们也可以返回“null”
public Integer getMinimum(){
if(isEmpty())
return null;
else
return data[0];
}
return
-1
或特殊值代码可以返回您想要的任何内容。它到底在做什么?你对简单的定义是什么。在您的数据集中,零是有效的解决方案吗?也许-1行吗?您需要提供更多详细信息/上下文。它不能返回“-1”,因为它可能会被树的“最小值”混淆。简单的代码,我的意思是不使用“Integer类”或java.lang.Integer
。抛出异常可能就是您要找的
public Integer getMinimum(){
if(isEmpty())
return null;
else
return data[0];
}