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

时间:2019-11-19 17:45:18

标签: if-statement numbers max min conventions

例如,如果我要将数组中的所有负整数设置为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, -2, -3, 4, -5};
for (int i = 0; i < arr.length; i++){
    arr[i] = Math.max(arr[i], 0);
}

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

1 个答案:

答案 0 :(得分:0)

更快的方法取决于语言,但是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, -3, 4, -5];
let arrayMaped = array.map(item => item >= 0 ? item : 0);
console.log(arrayMaped);