相关疑难解决方法(0)

重构Java数组和原语(double [] [])到集合和泛型(List <List <Double >>)

我一直在重构一次性代码,这是我几年前以类似FORTRAN的方式编写的.大多数代码现在更加有条理和可读.然而,算法的核心(性能关键)使用1维和2维Java数组,其典型代表是:

    for (int j = 1; j < len[1]+1; j++) {
        int jj = (cont == BY_TYPE) ? seq[1][j-1] : j-1;
        for (int i = 1; i < len[0]+1; i++) {
            matrix[i][j] = matrix[i-1][j] + gap;
            double m = matrix[i][j-1] + gap;
            if (m > matrix[i][j]) {
                matrix[i][j] = m;
                pointers[i][j] = UP;
            }
            //...
        }
    }
Run Code Online (Sandbox Code Playgroud)

为清楚起见,可维护性以及与其余代码的接口,我想重构它.但是,在阅读用于数组Java Generics的Java Generics语法和数字时,我有以下问题:

  • 性能.该代码计划使用大约10 ^ 8 - 10 ^ 9秒/年,这几乎是可管理的.我的阅读建议将double变为Double有时可以在性能上增加3倍.我想要其他经验.我也希望从foo []移动到List也会受到影响.我没有第一手的知识,经验也很有用.

  • 数组绑定检查.这在double []和List中有不同的处理方式吗?我期望一些问题违反界限,因为算法相当简单并且仅应用于少数数据集.

  • 如果我不重构那么代码就有两种方法的丑陋且可能是脆弱的混合.我已经在尝试写下这样的东西:

    List <double []>和List …

java arrays generics collections

5
推荐指数
1
解决办法
1730
查看次数

标签 统计

arrays ×1

collections ×1

generics ×1

java ×1