最大值/最小值方法是否比If语句更常规,以便为值设置下限/上限?

例如,如果我要将数组中的所有负整数设置为0,哪个代码更常用或更快速?

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

OR

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

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

a405387759 回答:最大值/最小值方法是否比If语句更常规,以便为值设置下限/上限?

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

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

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

与第二个示例相比,它更易于阅读并且最好地维护该代码,但这仍然是我的看法。

但是,第一个示例可以按照您所选择的语言(取决于Java语言)以不同的方式来完成,您可以在一行中完成:

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

本文链接:https://www.f2er.com/3071380.html

大家都在问