Java数组大小初始化

我正在阅读Herbert Schildt撰写的一本书“ Java:初学者指南(第5版)”,我一直注意到一种声明数组的特殊方法.

以下是我自己的例子来说明这种做法:

public int[] generateArray(int size) {
    int[] x = new int[size+1];
    return x;
}
int[] y = generateArray(3);

现在,作者正在做的是始终创建大小为1的数组.我不明白为什么他会这样做.它是否避免了ArrayOutOfBounds异常?此外,如果他已经将它增加1,为什么不直接发送4而不是3?

这是他的书中的一个例子,用以澄清这个问题的含糊之处:

// A dynamic queue.
class DynQueue implements ICharQ {
    private char q[];
    private int putLoc, getLoc;
    public DynQueue(int size) {
        q = new char[size+1]; //allocate memory
        putLoc = getLoc = 0;
    }
}
我不懂这本书,但这个例子完全是误导!基本上新的int [3 1]将初始化一个大小为4的int数组,而不是3.给定一个方法int [] generateArray(int size)我绝对希望它会生成一个作为参数传递的大小数组,而不是一个这个方法唯一有意义的就是命名它:generateArrayThatHasLastIndex(int lastIndex).任何其他方式都是错的.
相关文章
相关标签/搜索