我是否必须为调用方法的计数器创建整数?

时间:2014-05-02 03:37:13

标签: java arrays methods int

问题是:

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是否有优势?

2 个答案:

答案 0 :(得分:1)

短语declaring a method call as an int并非如此。

解决方案所做的只是将int类型的常规变量声明为存储方法findNumberOf()的返回值。

在您的示例中,为findNumberOf()的返回值声明单独的int实际上没有任何优势。

可能有利的情景是:

  1. 您需要在整个功能中多次引用这些值。因此,您可以节省多次调用相同方法以及代码空间(名称最有可能比调用方法的时间短)。

  2. 您可以为返回值指定一个特定名称,从而提高代码的可读性。

  3. 这一切都取决于具体情况。在你的情况下它没有任何区别。

答案 1 :(得分:0)

这两个是等价的。在第一个示例中,编译器代表您创建两个临时int。