如何遍历int[][]?

发布于 2024-10-01 05:13:42 字数 143 浏览 1 评论 0原文

我尝试这样做:

for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[].length; j++) {

但这不起作用:(

I tried doing:

for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[].length; j++) {

but that doesn't work :(

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

忆离笙 2024-10-08 05:13:42

只需使用当前行索引到矩阵即可。

for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[i].length; j++) {
    // code
  }
}

这甚至考虑了锯齿状数组(即矩阵列中的行数不一致)。

Just index into the matrix using your current row.

for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[i].length; j++) {
    // code
  }
}

This even factors in the possibility of a jagged array (i.e., a matrix with an inconsistent number of rows in the column).

隔纱相望 2024-10-08 05:13:42
for (int i=0; i<matrix.length; i++) {
    for (int j=0; j<matrix[i].length; j++) {
for (int i=0; i<matrix.length; i++) {
    for (int j=0; j<matrix[i].length; j++) {
谁的年少不轻狂 2024-10-08 05:13:42
for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[i].length; j++) {

请注意我添加的 i

但是,最好在循环时缓存这两个长度,以避免在每个循环上重新计算,这样可以节省时间,但只需在内存中多一个 int 即可(该修复仍然适用):

for (int i=0, il=matrix.length; i<il; i++) {
  for (int j=0, jl=matrix[i].length; j<jl; j++) {
for (int i=0; i<matrix.length; i++) {
  for (int j=0; j<matrix[i].length; j++) {

Notice the i I added.

However, it's best to cache both lengths while looping to avoid re-evaluation on each loop, which saves time at the only cost of one more int in memory (the fix still applies):

for (int i=0, il=matrix.length; i<il; i++) {
  for (int j=0, jl=matrix[i].length; j<jl; j++) {
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文