访问多维数组

时间:2016-02-06 09:38:29

标签: java arrays

数组:

public static String[][] dhaka_header = {
        {"a", "a", "a", "a", "a", "a", "a"}, 
        {"b", "b", "b", "b", "b"}, 
        {"c", "c", "c"},
};

如何访问每个数组元素?

4 个答案:

答案 0 :(得分:5)

你有一个二维数组:array[rows][cols]

您可以使用嵌套for访问数组的每个成员,如下所示:

for (int row = 0; row < array.length; row++) {
    for (int col = 0; col < array[row].length; col++) {
        array[row][col] = "0"; // whatever you want goes here
    }
}

答案 1 :(得分:2)

对于二维数组

String[][] sa1 = new String[4][5];
for( int i = 0; i < sa1.length; i++) {           // sa1.length == 4
    for ( int j = 0; j < sa1[i].length; j++) {   // sa1[i].length == 5
        sa1[i][j] = "new String value";
    }
}

答案 2 :(得分:1)

最简单的方法是使用foreach循环。

String[][] dhaka_header = {
        {"a", "a", "a", "a", "a", "a", "a"},
        {"b", "b", "b", "b", "b"},
        {"c", "c", "c"},
};

for (String[] rowValues : dhaka_header) {
    for (String value : rowValues) {
        System.out.println(value); // or something else
    }
}
如果您可以使用streams,请

java8。下面两个例子。

首先使用双foreach

Arrays.stream(dhaka_header)
        .forEach(rowValues -> Arrays.stream(rowValues)
                .forEach(value -> System.out.print(value))
        );

和第二次使用flatmap将数组展平为一维,然后foreach对每个元素执行某些操作

Arrays.stream(dhaka_header)
        .flatMap(Arrays::stream)
        .forEach(value -> System.out.print(value));

答案 3 :(得分:0)

您可以为行和列实现嵌套for循环,如下所示

 class mapping
  {
      public static String[][] dhaka_header = {
      {"a", "a", "a", "a", "a", "a", "a"}, 
      {"b", "b", "b", "b", "b"}, 
      {"c", "c", "c"},
  };
 }
 public class Testarr 
   {

 public static void main(String arg[])
     {
     mapping obj=new mapping();
        // outer loop for accessing rows
        for(int i=0;i<obj.dhaka_header.length;i++)
        {
        // inner loop for accessing cols
           for (int j=0;j<obj.dhaka_header[i].length;j++)
            {
            System.out.print(obj.dhaka_header[i][j]+" ");
            }
           System.out.println("");
        }
    }
 }
    // here is outputs looks like
a a a a a a a  
b b b b b  
c c c