Auf Thema antworten

Sooo.. ich bins doch nochmal, hab bis jetzt am Programm rumprobiert, aber es kommt nur Müll raus :(


Ich poste hier nochmal meine 2 Klassen


Main


[code=Java]


package edu.hm.cs.swe2.minsort;


import edu.hm.cs.swe2.minsort.array.Array;


public class Main {


    public static void main(String[] args) {

       

        Array array = new Array (5,3,6,19,15,0,18,2,16,1,17,14,13,12,10,4,9,7,11,8);

       

        array.processArray();

       

    }


}


[/code]


[code=Java]


package edu.hm.cs.swe2.minsort.array;


import java.util.*;


public class Array {


    private int arrayLength;

    private int[] number;

   

    // Default-Konstruktor

    public Array() {


    }


    // Konstruktor der alle Werte der ArrayListe mit 0 initialisiert

    public Array(int arrayLength) {

       

        this.arrayLength = arrayLength;

        number = new int[arrayLength];


        for (int i = 0; i < number.length; i++) {

            number[i] = 0;

        }

    }

   

   

    // Variable-Length Argument List (varargs)

    public Array (int... number)

    {

        for (int input: number)

        {

            System.out.print(input + " ");

        }

    }


    // Methode, welche die Werte im Array "number" aufsteigend sortiert

    public void sortArray()

    {

        int[] number = {arrayLength};

        Arrays.sort(number);

       

        for(int sort: number)

            System.out.println(" " + sort);

       

    }

   

    // Methode, welche die Werte im Array "number" auf die Konsole ausgibt,

    // beginnend beim Wert mit dem Index 0

    public void printArray()

    {

        System.out.println("Hier beginnt die Verarbeitung eines neuen Arrays;");

        System.out.println("------------------------------------------------");

        System.out.println();

        System.out.println("Das ursprüngliche Array umfasst die folgenden Zahlen:");

        System.out.print(Arrays.toString(number) + " ");

       

    }

   

    // Methode, die zunächst das unsortiertte Array ausgibt und anschließend

    // eine Kopie des Arrays "number" über ein neues Objekt anlegt

    public void processArray()

    {

        int [] number = new int [arrayLength];

        int [] copy = new int [number.length];

       

        for (int i = 0; i < number.length; i ++)

        {

            copy[i] = number[i];

        }

       

        printArray();

        // Sortiert das Array "number" mit Hilfe der sortArray() Methode

        sortArray();

       

        // Sortiert das Array "copy"

        Arrays.sort(copy);

       

    }

   

   

   

    // Getter/Setter-Methoden

   

    public void setArrayLength (int arrayLength)

    {

        this.arrayLength = arrayLength;

    }

   

    public int getArrayLength()

    {

        return arrayLength;

    }


}


[/code]


Auf der Konsole erscheint:

5 3 6 19 15 0 18 2 16 1 17 14 13 12 10 4 9 7 11 8 Hier beginnt die Verarbeitung eines neuen Arrays;

------------------------------------------------


Das ursprüngliche Array umfasst die folgenden Zahlen:

null  0



Rauskommen sollte allerdings:


Hier beginnt die Verarbeitung eines neuen Arrays;

------------------------------------------------


Das ursprüngliche Array umfasst die folgenden Zahlen:

5 3 6 19 15 0 18 2 16 1 17 14 13 12 10 4 9 7 11 8


und dann noch 2 mal die Zahlenliste sortiert (einmal die richtige Zahlenreihe und einmal die kopierte "copy")



Kann sein, dass immer noch Fehler drin sind die hier schon angesprochen wurden, aber ich weiß nicht wie ich das ausbessern soll kann


Kann mir irgendeiner von euch wenigstens bisschen was verbessern damit die Reihenfolge der Ausgabe wenigstens stimmt?


Ich weiß dass:


die Zahlenreihenfolge zuerst ausgedruckt wird weil ich in der Main-Klasse ein Array erzeuge und das dann über


[code=Java] public Array (int... number) [/code] ausgegeben wird



Aber warum kommt, wenn ich die printArray() Methode aufrufe als Wert "Null" raus..ich hab doch n Arrayobjekt erstellt ..oder läuft das über die falsche Variable?


und warum wird mein Zahlenstrahl, den ich ja in der sortArray() Methode sortiert habe nicht richtig ausgegeben in der processArray() Methode?


Kann sein dass ich zulang vorm PC sitze aber ich weiß nich mehr weiter... -.-



Hoffe auf Antwort


mfg



Oben