日期:2014-05-20  浏览次数:20798 次

菜鸟求助: 如何用 tostring 打印二维数组
本人java菜鸟写了一个程序生成随机的二维数组,因为某些原因需要打印所生成的二维数组查看是否符合我的要求
现在我在测试代码(即 ‘public static void main(String[] args) {}’)中只能打印出一串内存地址
请问可以仅通过改写测试代码来打印整个数组么?

谢谢


import java.util.Arrays;


public class random_generating {
/*
  * 测试代码
  */
 public static void main(String[] args) {
  random_generating ra = new random_generating();
  System.out.println(Arrays.toString(ra.getRandomArray(10)));
 }
 
 /**
  * 随机数发生器
  * 0 <= Math.random() < 1
  * 
  * @return 1至10之间的随机整数
  */
 private int random() {
  return (int) (10 * Math.random() + 1);
 }
 
 /**
  * 将新获得的随机数与已产生的其它随机数相比较,若有重复数据,则丢弃,并重来一遍;
  * 否则,将新数存入数组。
  * 
  * @param i 数组的大小
  * @return 随机数组
  */
 public int[][] getRandomArray(int i) {
 int[][] a = new int[i][i];// a 随机数数组
 int x = 0;
 int y = 0;
 while(x < i){
 a[x][i-1] = x+1;
 y = 0;
 while(y < i-1){
 
 int temp = random();
 if (y == 0){
    a[x][y] = temp;
 }else{
 for (int n = 0; n < y; n++) { // n 遍历已产生的随机数
     if (temp == a[x][n]) {
      temp = random();
      n = -1;
     }
 }
 a[x][y] = temp;
 }
 
 y++;
 }
 x++;
 }
 
 return a;
 }
 
 
}
测试 二维数组

------解决方案--------------------
引用:
我去…………deeptostring就可以了……我真傻……

自己编写一个toString的方法或者命名为despcript等,方法内进行双重循环
------解决方案--------------------
JDK提供的自身方法应该比我们自己编写的方法,考虑要周到很多哈
------解决方案--------------------
引用:
我去…………deeptostring就可以了……我真傻……



8错,是个好方法
LZ还要注意类名规范,类名首字母大写。
------解决方案--------------------
以解决 蹭点分
------解决方案--------------------
重写toString方法