数组不打印索引值,而是打印地址

时间:2013-12-04 14:35:43

标签: java arrays

Hookay,所以,我无法理解这个问题。说实话,阵列激怒并迷惑我。 ......这是学习的一部分吗?

所以这是我的问题

Netbeans输出这个-_- wtf netbeans

以下是代码

//////Problem 4////////
   System.out.println("Please Enter the Size of your array");
   int arraysize = in.nextInt();
   //initalize array
   int [][] aOne = new int[arraysize][arraysize];

   // load array 1  
  for (int i = 0; i< aOne.length; i++){
      for(int x = 0; x <aOne[i].length;x++){
          aOne[i][x] = (int)(Math.random()* 15);}}
  //print aOne
  for (int i = 0; i< aOne.length; i++){
      for (int x = 0; x<aOne.length; x++){
          System.out.print(aOne[i]+" "+aOne[x]);
      }
      System.out.println();
  }

发生了什么事?

编辑:我理解它给了我记忆位置...为什么不打印出数字?抱歉。标题是我书中的问题,我一般都遇到阵列问题

2 个答案:

答案 0 :(得分:2)

更改行:

System.out.print(aOne[i]+" "+aOne[x]);

System.out.print(aOne[i][x]+" ");
然后你会得到数字。否则,您将获得2D阵列的行[i]和[x]的记忆地址。

答案 1 :(得分:0)

如果要打印int []数组。

使用 aOne [i] [x] 在int []数组中打印指定的元素。

另外,对于打印int []数组的第二个for循环,你最好使用 x&lt; aOne [i] .length 安装 x&lt; aOne.length ,因为当int []数组中的行数和列数不同时会引发问题。

用这个做一些,

来自

//print aOne
for (int i = 0; i< aOne.length; i++){
  for (int x = 0; x<aOne.length; x++){
      System.out.print(aOne[i]+" "+aOne[x]);
  }
  System.out.println();
}

      //print aOne
      for (int i = 0; i< aOne.length; i++){
          for (int x = 0; x<aOne[i].length; x++){
              System.out.print(aOne[i][x]+" ");
          }
          System.out.println();
      }

控制台中的一次运行结果如下:

5 0 10 
1 11 8 
7 7 5