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];
}