问题是:
Complete the method occursMoreTimes based on the requirements in its comment.
/**
*Returns true if the number of times val1 occurs in the array is strictly greater
*than the number of times val2 occurs in the array. Otherwise, return false.
*If you wish, you can call the findNumberOf method you wrote above.
**/
我的回答是:
public boolean occursMoreTimes(int[] arr, int val1, int val2){
if(findNumberOf(arr, val1) > findNumberOf(arr, val2)){
return true
}
else {return false;
}
}
但是answer键声明了我在if语句中编写的方法调用的int,如下所示:
public boolean occursMoreTimes(int[] arr, int val1, int val2){
int countVal1 = findNumberOf(arr, val1);
int countVal2 = findNumberOf(arr, val2);
if(countVal1 > countVal2){
return true
}
else {return false;
}
}
我的回答是否合理?将方法调用声明为int是否有优势?
答案 0 :(得分:1)
短语declaring a method call as an int
并非如此。
解决方案所做的只是将int
类型的常规变量声明为存储方法findNumberOf()
的返回值。
在您的示例中,为findNumberOf()
的返回值声明单独的int实际上没有任何优势。
可能有利的情景是:
您需要在整个功能中多次引用这些值。因此,您可以节省多次调用相同方法以及代码空间(名称最有可能比调用方法的时间短)。
您可以为返回值指定一个特定名称,从而提高代码的可读性。
这一切都取决于具体情况。在你的情况下它没有任何区别。
答案 1 :(得分:0)
这两个是等价的。在第一个示例中,编译器代表您创建两个临时int。