maximum/minimum 方法是否比 If 语句更传统来设置值的 lower/higher 绑定?

Is maximum/minimum method more conventional than If statements to set a lower/higher bound for values?

比如我想把一个数组中的所有负整数都设置为0,哪个代码更常用或者更快?

int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
    if (arr[i] < 0){
        arr[i] = 0;
    }
}

int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
    arr[i] = Math.max(arr[i], 0);
}

我发现我更常使用第一个。

更快的方法取决于语言,但在我看来,我总是选择可读性而不是性能(在某些情况下,性能至关重要,因此在这种情况下,您会采用最性能化的方式)。

说起来,我更喜欢第一个例子:

int[] arr = {1, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
    if (arr[i] < 0){
        arr[i] = 0;
    }
}

与第二个示例相比,此代码更易于阅读和维护,但同样,这是我的意见。

但是,第一个示例可以用不同的方式完成,具体取决于您选择的语言,例如Javascript,您可以在一行中完成:

let array = [-1 -2, -3, 4, -5];
let arrayMaped = array.map(item => item >= 0 ? item : 0);
console.log(arrayMaped);