import java.util.*;
public class Test1 {
Test1 []a;
int n;
int [] array ;
ArrayList<Integer> b = new ArrayList<Integer>();
public void initialArray(){
Scanner in = new Scanner(System.in);
n = in.nextInt();
a = new Test1[n];
    array = new int [n];
    for(int op = 0; op < n; op ++){
     array [op] = 0;
     a[op] = new Test1();
    }
for(int start = 0; start < n; start ++){
for(int start1 = 0; start1 < n; start1 ++){
a[start].array[start1] =(int)((Math.random()*n)+1);
a[start].b.add(a[start].array[start1]);
}
System.out.print(a[start].b);
}
}
public void sortArray(){
for(int start = 0; start < n; start ++){
Collections.sort(a[start].b);
System.out.print(a[start].b);
}
}
public static void main(String [] args){
Test1 go = new Test1();
go.initialArray();
System.out.println();
go.sortArray();
}
}

解决方案 »

  1.   

    import java.util.*;public class Test1 {
    Test1[] a;
    int n;
            //没有初始化array ==null
    int[] array ;
    ArrayList<Integer> b = new ArrayList<Integer>(); public void initialArray() {
    Scanner in = new Scanner(System.in);
    n = in.nextInt();
    a = new Test1[n];
    array = new int[n];
    for (int op = 0; op < n; op++) {
    array[op] = 0;
                            //没有把new Test1()中的array初始化 array==null
    a[op] = new Test1();
    }
    for (int start = 0; start < n; start++) {
    for (int start1 = 0; start1 < n; start1++) {
                                    //此处调用的一个 new Test1().array 从开始到现在都没有初始化array即array==null
    a[start].array[start1] = (int) ((Math.random() * n) + 1);
    a[start].b.add(a[start].array[start1]);
    }
    System.out.print(a[start].b);
    }
    } public void sortArray() {
    for (int start = 0; start < n; start++) {
    Collections.sort(a[start].b);
    System.out.print(a[start].b);
    }
    } public static void main(String[] args) {
    Test1 go = new Test1();
    go.initialArray();
    System.out.println();
    go.sortArray();
    }
    }
      

  2.   

    我发现问题是Math.random()这个方法不返回值。
      

  3.   


    不是给你指出的错误的所在我汗下面代码可以了import java.util.*;public class Test1 {
    Test1[] a;
    int n;
    int[] array;
    ArrayList<Integer> b = new ArrayList<Integer>(); public void initialArray() {
    Scanner in = new Scanner(System.in);
    n = in.nextInt();
    a = new Test1[n];
    array = new int[n];
    for (int op = 0; op < n; op++) {
    array[op] = 0;
    Test1 t1 = new Test1();
    t1.array = array;
    a[op] = t1;
    }
    for (int start = 0; start < n; start++) {
    for (int start1 = 0; start1 < n; start1++) {
    a[start].array[start1] = (int) ((Math.random() * n) + 1);
    a[start].b.add(a[start].array[start1]);
    }
    System.out.print(a[start].b);
    }
    } public void sortArray() {
    for (int start = 0; start < n; start++) {
    Collections.sort(a[start].b);
    System.out.print(a[start].b);
    }
    } public static void main(String[] args) {
    Test1 go = new Test1();
    go.initialArray();
    System.out.println();
    go.sortArray();
    }
    }
      

  4.   


    a[start].array[start1] = (int) ((Math.random() * n) + 1);//a[start].array没有初始化,
    在你代码里面a = new Test1[n];array = new int[n];只是对当前对象的array进行了初始化,而你取得的是a[start]这里面的array都没有被初始化。所以报错