避免数组循环声纳问题:system.arraycopy

时间:2017-11-13 10:36:33

标签: arrays sonarqube

我想使用SysteM.arraycopy来加快下面的方法。但据我所知,Arraycopy不能涉及任何这样复杂的逻辑。

for (int c = 0; c < newRow.length && c < target[r].length; ++c)
{
    target[r][c] = newRow[c];
}

所以欢迎任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用System.arraycopy重写该内容。 这就是这样的:

  • 您想从newRow
  • 的索引0开始复制
  • 您想要从索引0开始复制到target[r]
  • 您希望最多复制newRow.lengthtarget[r].length元素,以较小者为准

像这样:

System.arraycopy(newRow, 0, target[r], 0, Math.min(newRow.length, target[r].length));