通过critera的可读性和性能从集合中提取信息时的最佳实践是什么?

问题描述 投票:0回答:1

有时需要从集合中提取一些信息。

但是最有效的做法是什么?

可读性>性能

如果必须分别对集合进行迭代以获取任何信息,那么我们将有n次循环,从而影响性能。另一方面,由于易于读取从集合中提取的信息,因此这些方法易于理解。

简单示例:

int max = determineMax(new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7)));
int sum = calculateSum(new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7)));
...
private int determineMax(ArrayList<Integer> integers) {
    int max = 0;
    for (Integer oneInteger : integers) {
        max = Math.max(max, oneInteger);
    }
    return max;
}
private int calculateSum(ArrayList<Integer> integers) {
    int sum = 0;
    for (Integer oneInteger : integers) {
        sum += oneInteger;
    }
    return sum;
}

性能>可读性

其他解决方法是循环一次,但随后需要返回许多变量。对于这种方法,我们需要使用数组或为返回值创建一个人工类。

简单示例:

int[] extractedInformation = extractInformation(new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7)));
...
private int[] extractInformation(ArrayList<Integer> integers) {
    int sum = 0;
    int max = 0;
    for (Integer oneInteger : integers) {
        sum += oneInteger;
        max = Math.max(max, oneInteger);
    }
    return new int[]{sum, max};
}
java performance readability code-readability
1个回答
0
投票

您可能渴望获得性能,但在现实世界中,项目如此之大,您不仅是从事此工作的人。

© www.soinside.com 2019 - 2024. All rights reserved.