代码在注释行上给出了NullPointerException。我无法找到问题。
package com.lambda.classes;
import java.util.Random;
public class Lambda {
public static void main(String []args)
{
int array[][]=new int[5][];
Random r=new Random();
Random r2=new Random();
for(int i=0;i<5;i++){
int x=r.nextInt(10);
for(int j=0;j<x;j++)
{
int y=r2.nextInt(200);//this line gives a null pointer exception
array[i][j]=y;
}
}
for (int[] is : array) {
for (int i : is) {
System.out.print(i+"\t");
}
System.out.println();
}
Random x=new Random();
System.out.println(x.nextInt(10));
System.out.println(x.nextInt(10));
}
}
答案 0 :(得分:0)
在此行中的代码错误&#39; array [i] [j] = y;&#39;。 因为它&#39; int array [] [] = new int [5] [];&#39;
你也需要为内部数组设置大小。
像这样的东西
public static void main(String[] args) {
int array[][] = new int[5][];
Random r = new Random();
Random r2 = new Random();
for (int i = 0; i < 5; i++) {
int x = r.nextInt(10);
array[i] = new int[x];
for (int j = 0; j < x; j++) {
int y = r2.nextInt(200);
array[i][j] = y;
}
}
for (int[] is : array) {
for (int i : is) {
System.out.print(i + "\t");
}
System.out.println();
}
Random x = new Random();
System.out.println(x.nextInt(10));
System.out.println(x.nextInt(10));
}
答案 1 :(得分:0)
实际上我正在尝试为这个问题实现一个锯齿状的数组,所以有什么东西像a [5] [100]那样初始化数组,如果我在某些东西如int的java声明中没有错array [] [] = new int [5] [];完全没问题,感谢答案(y):)
答案 2 :(得分:0)
现在我已经让它在没有使用额外空间的情况下工作了,好像我可以不喜欢int [5] [100];我可能最终会使用额外的空间,但感谢初始化点,它可以使用列表数组轻松完成.....谢谢你们:)
int array[][]=new int[5][];
Random r=new Random();
for(int i=0;i<5;i++){
int x=r.nextInt(10);
array[i]=new int[x];
for(int j=0;j<x;j++)
{
array[i][j]=r.nextInt(200);
}
}
for (int[] is : array) {
for (int i : is) {
System.out.print(i+" ");
}
System.out.println();
}