3

这是一个代码示例,它有 2 个构造函数,一个为空,另一个采用矩阵。客户端可以调用空构造函数,然后单独传入数组以调用 add 函数,也可以调用第二个构造函数,它接受一个矩阵。

我唯一的失望是一个私有函数“addAll”调用一个公共函数“add”。

有没有办法在不使用构造函数中的 for 循环的情况下改进这个(意味着调用公共方法的私有函数)?

public class MergeNSortedArray {

    private PriorityQueue<ArrayContainer> heap;
    int totalLength;

    public MergeNSortedArray() {
        heap = new PriorityQueue<MergeNSortedArray.ArrayContainer>();
    }

    public MergeNSortedArray(int[][] matrix) {
        addAll(matrix);
    }


    private void addAll(int[][] matrix) {
        for (int[] a : matrix) {
            add(a);
        }
    }

    public void add(int a[]) {
        totalLength += a.length;
        heap.add(new ArrayContainer(a));
    }
4

1 回答 1

0

你为什么不上这门课final?它似乎只是一个实用程序类,因此任何人都没有理由对其进行子类化。

于 2013-07-15T00:14:02.770 回答