java - 将数组插入二维数组

标签 java arrays

我正在尝试将一些结果数组插入二维数组。但最后我只得到所有的二维数组和我插入到二维数组中的最后一个数组的集合。当我调试和检查代码时,我发现每次执行此操作时 bmma[il]=number; bmma 数组的所有数组都会随着新分配的值而变化。

这是我实现的完整代码。

double[][] newDATA ;
double [][] bmma = new double[100][];

double [] number = new double[12];
int il=0;
  String fname = "newAudio.wav";

  RawAudioFileStream rawAudio = new RawAudioFileStream(fname);
  StreamHeader mh = mfccm.init(rawAudio.getHeader());
  MatrixFileStream out = new MatrixFileStream(fname + ".txt", true);
  out.setMultiLine(true);
  out.setHeader(mh);


  while (true) {
    StreamFrame f = mfccm.process(rawAudio.recvFrame());

    if (f == null) {
      break;
    }

    if(((MatrixHeader.MatrixFrame)f).data != null){

      for (int i=0;i<12;i++){

        newDATA=((MatrixHeader.MatrixFrame)f).data;
        number[i]=newDATA[i][0];

      }

      bmma[il]=number;
      il++;
    }

非常感谢任何帮助来解决这个问题。

最佳答案

你只有一个数组分配给 number(你在这里实例化的那个 - double [] number = new double[12];),你分配这个数组多次到 bmma 二维数组,因此二维数组的所有行都将相同。

您应该为二维数组的每一行创建一个新数组:

  number = new double[12];
  for (int i=0;i<12;i++){

    newDATA=((MatrixHeader.MatrixFrame)f).data;
    number[i]=newDATA[i][0];

  }

  bmma[il]=number;

关于java - 将数组插入二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35311658/

相关文章:

java - Oracle 日期没有来自 java 的时间

python - 无法 reshape 包含 PNG 图像的 numpy 数组

c - 用C语言在字符串中查找字符

c - 如何使用 SSE Intrinsics 减去同一数组的两个不同部分?

javascript - 如何通过搜索文本返回 JSON 数组中项目的索引位置?

java - 发现彩信大小限制?

java - spring oauth2sso 是如何工作的?为什么会发生这个重定向序列?

java - 对象数组的 getter 和 setter?

java - ListView内部布局

java - 在数组中查找缺失值时无法理解 `XOR` 背后的逻辑