Mam taki program:
package pl.java.moj_pakiet;
import java.util.Random;
public class Tab {
public static void main(String[] args) {
Random rand = new Random();
int tab[][] = new int [rand.nextInt() % 10 + 1][];
for (int i = 0; i < tab.length; i++)
tab[i] = new int [rand.nextInt() % 10 + 1];
Tab go = new Tab();
go.Wprowadz(tab);
int tab2[][] = new int [tab.length][go.Max(tab)];
go.Wypelnij(tab, tab2);
go.Wyswietl(tab2);
}
public void Wprowadz(int t[][])
{
Random rn = new Random();
int i, j;
int n = t.length;
for (i = 0; i < n; i++)
{
int m = t[i].length;
for (j = 0; j < m; j++)
t[i][j] = rn.nextInt() % 100;
}
}
public void Wypelnij(int t1[][], int t2[][])
{
for (int i = 0; i < t1.length; i++)
{
for (int j = 0; j < t1[i].length; j++)
t2[i][j] = t1[i][j];
for (int j = t1[i].length; j < Max(t1); j++)
t2[i][j] = -5;
}
}
public void Wyswietl(int t[][])
{
for (int i = 0; i < t.length; i++)
{
for (int j = 0; j < t[i].length; j++)
System.out.print(t[i][j] + "\t");
System.out.println();
}
}
public int Max(int t[][])
{
int max = 0;
for (int i = 0; i < t.length; i++)
if (max < t[i].length)
max = t[i].length;
return max;
}
}
Kompilator wywala takie coś:
Exception in thread "main" java.lang.NegativeArraySizeException
at pl.java.moj_pakiet.Tab.main(Tab.java:12)
Chodzi o linijkę
for (int i = 0; i < tab.length; i++)
tab[i] = new int [rand.nextInt() % 10 + 1];
Czemu taki error?