我有一个方法,该方法返回arrayList中的最小值。但是,如果arrayList为空,它将返回任何内容。有什么我可以做的吗?
private int smallest() {
if(alList.empty()) {
//whatever will exit the
//function.
}
small = alList.get(0);
for(int i = 1, i <
alList.size(), i++) {
if(small > alList.get(i)){
small = alList.get(i)
}
}
return small;
}
//Thanks for your help.
答案 0 :(得分:2)
由于您需要返回一个int
,因此,否,您必须返回一个值。
如果可以更改方法签名,则可以:
Integer
,然后返回null
。Optional<Integer>
并返回一个空的Optional。答案 1 :(得分:0)
有很多选择。最明显的三个:
抛出一个异常:`if(alList.isEmpty())抛出新的IllegalStateException(“调用minimum()时,alList不能为空);
确定一个哨兵值,例如0
,并返回该值。更新文档以明确表明空列表返回0。
private int smallest(int valueIfEmpty) { if (alList.isEmpty()) return valueIfEmpty; ... }
-在这种情况下传递要返回的值,以便调用者可以决定应该发生什么。