Java 如果LinkedList为空,是否从返回int的方法中不返回任何内容?
编辑:已解决。显然,返回0是有效的 长话短说,我必须返回一个int值,但当链表为空时什么也不返回。我该怎么做Java 如果LinkedList为空,是否从返回int的方法中不返回任何内容?,java,linked-list,return,Java,Linked List,Return,编辑:已解决。显然,返回0是有效的 长话短说,我必须返回一个int值,但当链表为空时什么也不返回。我该怎么做 public int countDuplicates() { int duplicates = 0; ListNode current = front; int num = current.data; current = current.next; while(current != null) { if(current.data == num) { dup
public int countDuplicates() {
int duplicates = 0;
ListNode current = front;
int num = current.data;
current = current.next;
while(current != null) {
if(current.data == num) {
duplicates++;
} else {
num = current.data;
}
current = current.next;
}
return duplicates;
}
当我尝试这个:
if(front == null) {
return ;
}
这不管用。我能做什么?你可以扔一个:-
您可以定义一个固定值,例如
Integer.minu value
,该值指示列表为空,或者将方法的声明更改为public Integer countreplicates()
,并在列表为空时返回null
。要保留现有代码,必须返回int、抛出异常或退出
最好的选择可能是更改代码-例如,使函数返回一个整数,这样就有了
null
选项。当然还有其他方法可以解决这个问题。如果您的方法返回一个int
,您必须确定一个可接受的值来表示“nothing”。例如0
,或者如果有效结果>=0
,则使用负值,例如-1
表示“无”
或者,修改您的方法以返回一个整数
对象,在这种情况下,您可以返回null
如果您不想(或不能)抛出异常,请返回一些“异常值”,例如负数。例如,Java有许多indexOf(objectsomethingtookfor)
方法,如果找不到项,这些方法将返回-1
在您的示例中,-1是例外的,因为永远不可能有-1重复项
就我个人而言,对于空列表,我只会返回0。空列表有0个重复项。但是如果规范坚持某些异常,则返回-1。您可以将返回值从int更改为object,如下所示
public Object countDuplicates() {
if(////condition)
return ///int;
else
return null;
您可以返回一个负值,或者将返回类型更改为string,并将结果解析为int。是的,这是另一种选择,但我正在练习的在线编译器不接受异常。@KaranGoel。在这种情况下,您可以使用
Integer
返回类型,而不是int
返回类型,并在空列表中返回null
。你别无选择。@KaranGoel。。如果将返回类型更改为Integer
,则返回null
将有效。如果0是其他条件的有效返回值,则返回0可能会有问题。我刚刚编辑了我的响应,建议您返回0…@Karan。。不要编辑问题来表示问题已经解决。而是将解决问题的答案之一标记为已接受。您可以单击每个答案旁边的一个箭头。
public boolean isEmpty(){
if (head == null) return true;
else return false ;
}
public boolean isEmpty(){
if (head == null) return true;
else return false ;
}