这是一个代码示例,它有 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));
}