Array-Sortierer

Diskutiere Array-Sortierer im Java Basics - Anfänger-Themen Bereich.
H

Hansebas

Moin,

ich will mir ein kleines Programm schreiben, in dem ich auswählen kann, ob ein Array zufällig mit Werten befüllt wird oder ein fixe vorgegebenes Array genommen werden soll und in welcher Dimension das Array besteht. Schlussendlich soll über verschiedene Sortieralgorithmen das Array sortiert werden. Hierzu habe ich mehrere Klassen entworfen.

Eindimensional.class
Mehrdimensional.class
Sortierer.class
MainController.class

Zusätzlich habe ich eine TestMainController.class mit der ich die einzelnen Methoden der jeweiligen Klasse überprüfe.

Derzeit stehe ich vor folgender Herausforderung.

Der Klasse Sortierer.class sollen die Arrays übergeben werden, welche ich in den Klassen Eindimensional.class und Mehrdimensional.class erschaffen werden. Um mir Aufwand zu sparen habe ich in der Sortierer.class eine Methode arrayEin(){} erstellt, welche das übergebene Array in ein neues Array kopiert. Hier benutze ich die clone()-Methode. Das hier zurückgegebene Array soll dann wiederum zum sortieren genutzt werden. Nach Sortierung soll, je nach Anwenderwunsch, dass alte Array überschrieben werden oder nicht.

Teste ich nun, wird mir das beliebte [I@15db9742 als return ausgegeben. Damit ich sehen kann, was denn nun in dem Objekt sortarray vorhanden ist, habe ich besagte Methode mal umgestellt und muss feststellen, dass das Array mit 0en befüllt ist.

Wie kann ich in meiner Methode arrayEin(){} das eingegebene Array sauber kopieren?

Java:
public class Eindimensional {
    
    
    static int[] einsZufall = new int[10];
    static int[] einsFix = new int[10];
    
    //ANFANG einsFix//
    public static void fix() {
        
        //int[] einsFix = {0,1,2,3,4,5,6,7,8,9};
        int j = 0;
        
        for(int i=0; i < einsFix.length; i++) {
            
            System.out.println(einsFix[i]=j);
            j++;
        }
        System.out.println("Ende einsFix");   
    }
}
Java:
public class Sortierer extends Eindimensional{
 static int sortarray[];
 
 //ArrayEingabe *es werden die unsortierten Arrays in das zu sortierende Array übergeben --> mittels clone()
 public static String arrayEin() {
  sortarray = einsFix.clone();
  sortarray = einsZufall.clone();
 
  return Arrays.toString(sortarray);
 }
Konsolenausgabe
0
....
9
Ende einsFix
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Java:
public class Sortierer extends Eindimensional{
 static int sortarray[];
 
 //ArrayEingabe *es werden die unsortierten Arrays in das zu sortierende Array übergeben --> mittels clone()
 public static int[] arrayEin() {
  sortarray = einsFix.clone();
  sortarray = einsZufall.clone();
 
  return sortarray;
 }
Konsolenausgabe
0
.....
9
Ende einsFix
[I@15db9742
 
Flown

Flown

Ich verstehen nicht, was du mit deinem Code bezwecken willst. Du übergibst nirgendwo deine Arrays, sondern du kopierst sie einfach.
Eine Übergabe würde man mit Methodenparameter haben. Außerdem verstehe ich die Ableitung der Klasse Eindimensional nicht.
Das sollte doch nur der Generator für die eindimensionalen Arrays werden oder nicht?
 
Thema: 

Array-Sortierer

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben