gpt4 book ai didi

java - Java 中 vector 可以引用二维数组吗?

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

基本上,我想创建一个在运行时大小增长的二维数组。我可以使用 Java 中的 vector 来做到这一点吗?

那么这些是对的吗?

int[][]x = new x[100][100];

vector x=new Vector();

将元素添加到数组中-

for i=0 to 99
for j=0 to 99
x.addElement(x[i] [j]);

本质上,它就像引用任何其他对象一样,只是在这里,我还必须指定索引号,对吗?

我是 Java 新手。因此,我将不胜感激任何帮助!

最佳答案

不幸的是,Java 既没有 2D 数组,也没有 2D 增长 vector 。

它有数组的数组或 vector 的 vector 。

在您的示例中,您创建了对象的一维 vector :

Vector x= new Vector();

类似于Object[] x类型的增长数组

所以,当你这样做

y.addElement(x[i][j]);

Java 进行“拳击”,即它确实进行

y.addElement(new Integer(x[i][j]));

由于您将 100x100 个元素添加到一维数组中,因此您需要自己计算位置

y.get(i*numcols+j)

因此,为了避免这一切,请使用 vector 的 vector ,如下例所示。该示例将新固定大小的数组复制到 vector vector 中:

   // creates fixed size 2D array with zeros
int [] [] x = new int [50][50];

// creates empty vector of vectors of integers
// y is of type Vector<Vector<Integer>>
// y.get(row) is of type Vector<Integer>>
// y.get(row).get(col) is of type Integer
Vector<Vector<Integer>> y = new Vector<Vector<Integer>>();

// set the size of vector of vectors (number of rows)
// each row will be null for now
y.setSize(x.length);

// enumerating rows
for(int row=0; row<x.length; ++row) {

log.info("row {}", row);

// assign empty vector for row
y.set(row, new Vector<Integer>());

// set row size (number of columns)
y.get(row).setSize(x[row].length);

// enumerating columns of current row
for(int col=0; col<x[row].length; ++col) {

// setting the value for a cell
y.get(row).set(col, x[row][col]);

}
}

关于java - Java 中 vector 可以引用二维数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373289/

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