Ich will in einer Arraylist arrays vom Typ Integer speichern das funktioniert soweit auch. Die arrays haben eine größe von N = 100, 1000, 10000, 100000, 1000000 für diese größen soll es jeweils 10 arrays geben und diese sollen dann mit Werten befüllt werden. Mein Problem ist wenn ich die arrays an meine sortier Algorithmen übergebe die zu 100% einwandfrei laufen bekomme ich eine Nullpointer exception, weil in meinen arrays null-Werte gespeichert werden. Das versteh ich nicht, da ich extra angebe wie groß die arrays werden dürfen?
Mein Code:
Vielleicht ist die Arraylist hier nicht das richtige ? Oder kann man die null Werte irgendwie löschen?
LG
Mein Code:
Code:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayList<Integer[]> arrays100 = new ArrayList<Integer[]>(10);
ArrayList<Integer[]> arrays1000 = new ArrayList<Integer[]>(10);
ArrayList<Integer[]> arrays10000 = new ArrayList<Integer[]>(10);
ArrayList<Integer[]> arrays100000 = new ArrayList<Integer[]>(10);
ArrayList<Integer[]> arrays1000000 = new ArrayList<Integer[]>(10);
Integer array1[] = new Integer[100];
Integer array2[] = new Integer[1000];
Integer array3[] = new Integer[10000];
Integer array4[] = new Integer[100000];
Integer array5[] = new Integer[1000000];
long beforeSort;
long afterSort;
long nanoSeconds;
long microSeconds;
while (true) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < array1.length; j++) {
array1[j] = (int) (Math.random() * 1000000);
}
arrays100.add(i, array1);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < array1.length; j++) {
array2[j] = (int) (Math.random() * 1000000);
}
arrays100.add(i, array2);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < array1.length; j++) {
array3[j] = (int) (Math.random() * 1000000);
}
arrays100.add(i, array3);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < array1.length; j++) {
array4[j] = (int) (Math.random() * 1000000);
}
arrays100.add(i, array4);
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < array1.length; j++) {
array5[j] = (int) (Math.random() * 1000000);
}
arrays100.add(i, array5);
}
ArrayList<Integer[]> copy1 = (ArrayList<Integer[]>) arrays100.clone();
ArrayList<Integer[]> copy2 = (ArrayList<Integer[]>) arrays1000.clone();
ArrayList<Integer[]> copy3 = (ArrayList<Integer[]>) arrays10000.clone();
ArrayList<Integer[]> copy4 = (ArrayList<Integer[]>) arrays100000.clone();
ArrayList<Integer[]> copy5 = (ArrayList<Integer[]>) arrays1000000.clone();
System.out.println("Enter number (1-5)): ");
int number = input.nextInt();
if (number == 1) {
// for(int i = 0; i < arrays100.size(); i++) {
System.out.println(Arrays.toString(arrays100.get(1))); // hier wird mir angezeigt das null werte in meinem array sind
Sorter.insertionsort(arrays100.get(1)); // hier wird das array übergeben
// }
} else
break;
}
}
Vielleicht ist die Arraylist hier nicht das richtige ? Oder kann man die null Werte irgendwie löschen?
LG