Java 是否认为修改参数是一种不好的做法
java中的二进制搜索代码使用以下代码:Java 是否认为修改参数是一种不好的做法,java,Java,java中的二进制搜索代码使用以下代码: public static int binarySearch(int[] a, int fromIndex, int toIndex, int key) { rangeCheck(a.length, fromIndex, toIndex); return binarySearch0(a, fromIndex, toIndex, key); }
public static int binarySearch(int[] a, int fromIndex, int toIndex,
int key) {
rangeCheck(a.length, fromIndex, toIndex);
return binarySearch0(a, fromIndex, toIndex, key);
}
// Like public version, but without range checks.
private static int binarySearch0(int[] a, int fromIndex, int toIndex,
int key) {
int low = fromIndex;
int high = toIndex - 1;
while (low <= high) {
int mid = (low + high) >>> 1;
int midVal = a[mid];
if (midVal < key)
low = mid + 1;
else if (midVal > key)
high = mid - 1;
else
return mid; // key found
}
return -(low + 1); // key not found.
}
基本上,我试图了解这是出于某种目的,还是出于某种优势,还是遵循了一些良好的实践。由于所有参数都是原语,因此无论它们是否被修改为任何调用方法都无关紧要。因为所有参数都是原语,那么它们是否被修改到任何调用方法都无关紧要。因为所有参数都是原语,那么它们是否被修改到任何调用方法也无关紧要。因为所有参数都是原语,然后,不管它们是否被修改为任何调用方法。有些人会认为这是一种糟糕的风格,但它不是必需的。如果您希望明确不修改这些字段,请将这些字段设置为最终字段
对于长方法,我认为这是一个好主意,因为它使事情变得更清楚(如果稍后再使用它,您可能会忘记某个方法中的某些内容已被进一步修改)。简而言之,我们很清楚到底发生了什么。有些人会认为这是一种糟糕的风格,但这是不必要的。如果您希望明确不修改这些字段,请将这些字段设置为最终字段
对于长方法,我认为这是一个好主意,因为它使事情变得更清楚(如果稍后再使用它,您可能会忘记某个方法中的某些内容已被进一步修改)。简而言之,我们很清楚到底发生了什么。有些人会认为这是一种糟糕的风格,但这是不必要的。如果您希望明确不修改这些字段,请将这些字段设置为最终字段
对于长方法,我认为这是一个好主意,因为它使事情变得更清楚(如果稍后再使用它,您可能会忘记某个方法中的某些内容已被进一步修改)。简而言之,我们很清楚到底发生了什么。有些人会认为这是一种糟糕的风格,但这是不必要的。如果您希望明确不修改这些字段,请将这些字段设置为最终字段
对于长方法,我认为这是一个好主意,因为它使事情变得更清楚(如果稍后再使用它,您可能会忘记某个方法中的某些内容已被进一步修改)。对于简短的方法,我们很清楚到底发生了什么。使用递归进行搜索,这样就不需要修改低参数和高参数使用递归进行搜索,这样就不需要修改低参数和高参数使用递归进行搜索,这样就不需要修改低参数和高参数使用递归进行搜索,这样就不需要修改低参数和高参数保持参数不被修改是一种好做法,最好将其声明为最终参数。
这也提高了方法的可读性。保持参数不变是一个很好的做法,最好将其声明为最终参数。
这也提高了方法的可读性。保持参数不变是一个很好的做法,最好将其声明为最终参数。
这也提高了方法的可读性。保持参数不变是一个很好的做法,最好将其声明为最终参数。
这也提高了方法的可读性。根据我的经验,特别是在参数是原语的情况下,复制参数和编写类似的方法非常有用,以便于调试-许多调试器提供了“重新启动”运行特定方法的功能,如果参数已被修改,然后它将使用修改后的参数而不是原始参数。根据我的经验,特别是在参数是原语的情况下,复制参数和编写类似的方法非常有用,以便于调试-许多调试器提供了“重新启动”运行特定方法的功能,如果参数已经被修改,那么它将使用修改后的参数而不是原始参数。根据我的经验,尤其是在参数是原语的情况下,复制参数和编写这样的方法非常有用,以便于调试-许多调试器提供了“重新启动”运行特定方法的功能,如果参数已被修改,那么它将使用修改后的参数而不是原始参数。根据我的经验,特别是在参数是原语的情况下,复制参数和编写类似的方法非常有用,以便于调试-许多调试器提供“重新启动”运行特定方法的功能,如果参数已修改,然后它将使用修改后的参数而不是原始参数。
为什么需要从索引复制到低,从索引复制到高?
您不应该告诉我们吗?如果你不这样做会有什么不同吗?你为什么认为首先应该这样做?这确实是一件基于意见的事情,但在一般情况下,假设方法不会修改参数,除非文档中明确说明会修改(即:向映射参数添加值)是的!,这都是关于个人的opinion@JeroenVannevel它是来自JDK的binarySearch
。他在问这件事。为什么需要从索引复制到低位,从索引复制到高位?
你不应该告诉我们吗?如果你不这样做会有什么不同吗?你为什么认为首先应该这样做?这确实是一件基于意见的事情,但在一般情况下,假设方法不会修改参数,除非文档中明确说明会修改(即:向映射参数添加值)是的!,这都是关于个人的opinion@JeroenVannevel它是来自JDK的binarySearch
。他在问这件事。为什么需要从索引复制到低位
binarySearch0(a, fromIndex, toIndex - 1, key);
}
// Like public version, but without range checks.
private static int binarySearch0(int[] a, int low, int high,
while (low <= high) {