Oracle教程中的多维数组

时间:2012-02-06 11:07:37

标签: java

我正在阅读关于Java的Oracle教程,到目前为止我还有一件事情我不明白。这就是为什么数组的结果是显示的原因。

代码是:

public static void main (String [] args){

      String[][] names = {
                {"Mr. ", "Mrs. ", "Ms. "},
                {"Smith", "Jones"}
            };
            // Mr. Smith
            System.out.println(names[0][0] +
                names[1][0]);
            // Ms. Jones
            System.out.println(names[0][2] +
                names[1][1]);
        }   

据我所知,当指数为0时,Mr会被打印出来。但是当它是[1] [0]时,smith会被打印出来,而且我也知道Ms是如何被打印出来的,因为索引是2.但我不是了解琼斯是如何打印出来的。

我不明白多维数组如何使用索引。

如果我错了请纠正我,但多维数组是否像行一样工作?所以第一个数组是0,下一个数组是1,依此类推?

这是为什么[1]是第二个数组而[0]等于“Smith”,因为它是索引0?

3 个答案:

答案 0 :(得分:2)

第一个索引选择以下两个数组之一:

  • names[0]

    {"Mr. ", "Mrs. ", "Ms. "}
    
  • names[1]

    {"Smith", "Jones"}
    

第二个索引选择该数组的一个元素。

因此:

  • names[0][0]"Mr. "
  • names[0][1]"Mrs. "
  • names[0][2]"Ms. "
  • names[1][0]"Smith"
  • names[1][1]"Jones"

答案 1 :(得分:1)

String[] titles = names[0]; // {"Mr. ", "Mrs. ", "Ms. "}
String[] lastNames = names[1]; // {"Smith", "Jones"}
  

但我不明白Jones是如何打印出来的。

names的第一个索引选择要从中挑选的String数组,而第二个索引是所选数组的元素。

正如"Smith"lastNames[0] names[1][0]"Jones"lastNames[1],与names[1][1]相同。

  

如果我错了请纠正我,但多维数组就像行一样工作。所以第一个数组是0,下一个数组是1,依此类推?

     

这是为什么[1]是第二个数组而[0]等于“Smith”,因为它是索引0?

这是正确的。

答案 2 :(得分:0)

您的数组将这些值存储如下

names[0]  [0] | [1] | [2] | 
     Mr   Mrs    Ms 

names[1]  [0] |  [1] 
         Smith  Jones   

这就是为什么

System.out.println(names[0][2] +
                names[1][1]);

打印琼斯女士

希望这会对你有所帮助。