gpt4 book ai didi

java - 将元素添加到 vector 的 vector 时出现 ArrayIndexOutofBounds 异常

转载 作者:行者123 更新时间:2023-12-02 02:08:01 27 4
gpt4 key购买 nike

我已经阅读了文档并查看了许多问题,但仍然无法在不遇到 ArrayIndexOutofBounds 异常的情况下创建 vector vector 。对于某些上下文,我正在创建一个矩阵,其中每个槽都包含对边缘的引用,表示从源到目的地的航类。正在关注one SO response ,我按如下方式设置 vector 。

    Iterator<Edge> iter = array.iterator();
private Vector<Vector<Edge>> matrix = new Vector<Vector<Edge>>(9);
for (int i=0;i<9;i++){
matrix.add(i,new Vector<Edge>(9));
}

while (iter.hasNext()) {
Edge e = iter.next();
int s = e.source; //row
int d = e.destination; //col
Vector<Edge> row = matrix.get(s);
int size = row.size();
row.add(d, e); // Array Out of Bounds Exception
}

我相信我已经初始化了内部和外部 vector ,但不明白为什么 vector 的大小仍然为零。在开始放置和获取元素之前,是否必须将所有元素初始化为 null?我将衷心感谢您的帮助。

最佳答案

new Vector<Edge>(9)创建一个空的Vector容量9。因此,调用add(d,e)对于这样一个Vectord不为 0 会抛出 ArrayIndexOutOfBoundsException .

初始化每一行Vector对于空值,请使用:

for (int i = 0; i < 9; i++) {
Vector<Edge> v = new Vector<>(9);
matrix.add(v);
for (int j = 0; j < 9; j++)
v.add(null);
}

关于java - 将元素添加到 vector 的 vector 时出现 ArrayIndexOutofBounds 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50460371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com