[英]Store String… array in 2D array
我有一个函数,该函数具有String ... array(jdk 1.4中的var args)格式的矩阵形式的值。 我可以添加具有2D数组的值并在其中添加数组中的值。
Matrix m = new Matrix(3,3,
"2", "2", "5 /",
"3 3 *", "7", "2",
"1 1 +", "1 1 /", "3"
);
和函数调用:
public Matrix(int nRows, int nCols, String... exprArray) {
Stack<String []> tks = new Stack<String []>();
String arr[][] = null ;
for(int i = 0; i < nRows; i++){
for(int k = 0; k<nCols;k++){
/****Add the value in 2D array using exprArray dont know how to do it can anyone help me out here *****/
arr[i][k] = exprArray[i];
System.out.println(arr[i][k]);
}
}
}
您需要创建一个数组。
String arr[][] = new String[nRows][nCols];
我假设您想实现一个方法 ,因为上面的实现看起来更像一个构造函数。 这是我的镜头:
public String[][] matrix(int nRows, int nCols, String... exprArray) {
String[][] m = new String[nRows][nCols];
for (int i = 0; i < nRows; i++)
for (int j = 0; j < nCols; j++)
m[i][j] = exprArray[(i * nCols) + j];
return m;
}
如果您需要在构造函数中完成此操作,只需在构造函数内部调用上述方法(显然,您必须声明String [] []类型的属性以存储生成的矩阵)
这可能无法回答您最初的要求,但是我正在尝试提供另一种观点
您可以选择像这样用1D数组隐含2D数组,并将隐含细节隐藏在您的吸气剂后面
public class Matrix {
private String[] data;
private int colCount;
public Matrix(int rowCount, int colCount, String... data) {
this.data = new String[rowCount * colCount];
System.arraycopy(data, 0, this.data, 0, data.length);
this.colCount = colCount;
}
public String get(int row, int col) {
return data[row * colCount + col];
}
}
如果您的rowCount与colCount相同,则可以进一步简化
class SquareMatrix extends Matrix{
public SquareMatrix(int size, String... data) {
super(size, size, data);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.