Hallo zusammen,
ich möchte einen Bubblesort Algorithmus schreiben.
Die jeweiligen Methoden befinden sich in unterschiedlichen Klassen.
Das erstellen und ausgeben des Array´s "zusortieren" funktioniert, ich habe die Klasse zu Probe einzeln getestet.
Wenn ich jetzt aber die Bubblesort Klasse dranhänge gibt mir die Konsole folgendes aus.
[CODE lang="java" title="Konsole"]Wie viele Werte sollen sortiert werden?
3
Geben Sie nun die 1 zu speichernde Zahl ein
1
Geben Sie nun die 2 zu speichernde Zahl ein
2
Geben Sie nun die 3 zu speichernde Zahl ein
3
Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because the return value of "Array.getZusortieren()" is null
at Bubblesort.sortieren(Bubblesort.java:8)
at Main.main(Main.java:10)[/CODE]
Ich habe schon unendlich lange rumprobiert und gegoogelt aber ich finde einfach keine Lösung für mein Problem.
Ich hoffe, ihr könnt mir da weiterhelfen.
Vielen Dank im Voraus.
[CODE lang="java" title="Array Class"]import java.util.Scanner;
public class Array {
private double[] zusortieren;
public double[] getZusortieren() {
return zusortieren;
}
public static void arrayVoid(String[] args) {
System.out.println("Wie viele Werte sollen sortiert werden?");
Scanner eingabe = new Scanner(System.in);
Array arrayObjekt = new Array();
int arrayGröße = eingabe.nextInt();
arrayObjekt.zusortieren = new double[arrayGröße];
for (int i = 0; i < arrayGröße; i++) {
System.out.println("Geben Sie nun die " + (i + 1) + " zu speichernde Zahl ein");
double eingaben = eingabe.nextDouble();
arrayObjekt.zusortieren = eingaben;
}
}
}[/CODE]
[CODE lang="java" title="Bubblesort Class"]public class Bubblesort {
public void sortieren() {
Array arrayObjekt = new Array();
double tausch;
for (int i = 1; i < arrayObjekt.getZusortieren().length; i++) {
for (int j = 0; j < (arrayObjekt.getZusortieren().length - i); j++) {
if (arrayObjekt.getZusortieren()[j] > arrayObjekt.getZusortieren()[j + 1]) {
tausch = arrayObjekt.getZusortieren()[j];
arrayObjekt.getZusortieren()[j] = arrayObjekt.getZusortieren()[j + 1];
arrayObjekt.getZusortieren()[j + 1] = tausch;
}
}
}
}
public static void bubblevoid(String[] args) {
Array arrayObjekt = new Array();
System.out.println("Vor dem sortieren");
for (int i = 0; i < arrayObjekt.getZusortieren().length; i++) {
System.out.println(i + 1 + ":" + arrayObjekt.getZusortieren());
}
double[] arrayA = arrayObjekt.getZusortieren();
System.out.println("Nach dem sortieren");
for (int j = 0; j < arrayA.length; j++) {
System.out.println(+1 + ":" + arrayA[j]);
}
}
}
[/CODE]
ich möchte einen Bubblesort Algorithmus schreiben.
Die jeweiligen Methoden befinden sich in unterschiedlichen Klassen.
Das erstellen und ausgeben des Array´s "zusortieren" funktioniert, ich habe die Klasse zu Probe einzeln getestet.
Wenn ich jetzt aber die Bubblesort Klasse dranhänge gibt mir die Konsole folgendes aus.
[CODE lang="java" title="Konsole"]Wie viele Werte sollen sortiert werden?
3
Geben Sie nun die 1 zu speichernde Zahl ein
1
Geben Sie nun die 2 zu speichernde Zahl ein
2
Geben Sie nun die 3 zu speichernde Zahl ein
3
Exception in thread "main" java.lang.NullPointerException: Cannot read the array length because the return value of "Array.getZusortieren()" is null
at Bubblesort.sortieren(Bubblesort.java:8)
at Main.main(Main.java:10)[/CODE]
Ich habe schon unendlich lange rumprobiert und gegoogelt aber ich finde einfach keine Lösung für mein Problem.
Ich hoffe, ihr könnt mir da weiterhelfen.
Vielen Dank im Voraus.
[CODE lang="java" title="Array Class"]import java.util.Scanner;
public class Array {
private double[] zusortieren;
public double[] getZusortieren() {
return zusortieren;
}
public static void arrayVoid(String[] args) {
System.out.println("Wie viele Werte sollen sortiert werden?");
Scanner eingabe = new Scanner(System.in);
Array arrayObjekt = new Array();
int arrayGröße = eingabe.nextInt();
arrayObjekt.zusortieren = new double[arrayGröße];
for (int i = 0; i < arrayGröße; i++) {
System.out.println("Geben Sie nun die " + (i + 1) + " zu speichernde Zahl ein");
double eingaben = eingabe.nextDouble();
arrayObjekt.zusortieren = eingaben;
}
}
}[/CODE]
[CODE lang="java" title="Bubblesort Class"]public class Bubblesort {
public void sortieren() {
Array arrayObjekt = new Array();
double tausch;
for (int i = 1; i < arrayObjekt.getZusortieren().length; i++) {
for (int j = 0; j < (arrayObjekt.getZusortieren().length - i); j++) {
if (arrayObjekt.getZusortieren()[j] > arrayObjekt.getZusortieren()[j + 1]) {
tausch = arrayObjekt.getZusortieren()[j];
arrayObjekt.getZusortieren()[j] = arrayObjekt.getZusortieren()[j + 1];
arrayObjekt.getZusortieren()[j + 1] = tausch;
}
}
}
}
public static void bubblevoid(String[] args) {
Array arrayObjekt = new Array();
System.out.println("Vor dem sortieren");
for (int i = 0; i < arrayObjekt.getZusortieren().length; i++) {
System.out.println(i + 1 + ":" + arrayObjekt.getZusortieren());
}
double[] arrayA = arrayObjekt.getZusortieren();
System.out.println("Nach dem sortieren");
for (int j = 0; j < arrayA.length; j++) {
System.out.println(+1 + ":" + arrayA[j]);
}
}
}
[/CODE]