Problem mit Array Ausgabe

alexbo92

Mitglied
Hey Leute.
Ich habe mit Java angefangen und spiele gerade ein bisschen mit "Eclipse" herum. Undzwar habe ich nun eine Klasse erstellt, die den Benutzer auffordert Fünf Autos jeweils mit einer Note zu bewerten.
Anschließend soll das Array die Autos nach der Benotung wieder ausgeben(sprich: AutoMarke + Note). Leider bekomme ich es nur hin, dass die Noten geordnet ausgegeben werden. Könntet ihr mir vielleicht weiter helfen?

Java:
import java.util.*;

public class Rechner {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] reihe = new int[5];
        String[] name = new String[5];
        System.out.println("Bewerten Sie die Autos mit Noten(1-6)");
        System.out.println("*******************************************");
        name[0]="Auto1";
        name[1]="Auto2";
        name[2]="Auto3";
        name[3]="Auto4";
        name[4]="Auto5";
        System.out.print(name[0]+ ": ");reihe[0]=in.nextInt();
        if(reihe[0]<1 || reihe[0]>6){
            System.out.println("Falsche Eingabe!!!");
            System.out.print(name[0]+ ": ");
            reihe[0]=in.nextInt();
        }
       
        System.out.print(name[1]+ ": ");reihe[1]=in.nextInt();
        if(reihe[1]<1 || reihe[1]>6){
            System.out.println("Falsche Eingabe!!!");
            System.out.print(name[1]+ ": ");
            reihe[1]=in.nextInt();
        }
       
        System.out.print(name[2]+ ": ");reihe[2]=in.nextInt();
        if(reihe[2]<1 || reihe[2]>6){
            System.out.println("Falsche Eingabe!!!");
            System.out.print(name[2]+ ": ");
            reihe[2]=in.nextInt(); 
        }
       
        System.out.print(name[3]+ ": ");reihe[3]=in.nextInt();
        if(reihe[3]<1 || reihe[3]>6){
            System.out.println("Falsche Eingabe!!!");
            System.out.print(name[3]+ ": ");
            reihe[3]=in.nextInt();
        }
       
        System.out.print(name[4]+ ": ");reihe[4]=in.nextInt();
        if(reihe[4]<1 || reihe[4]>6){
            System.out.println("Falsche Eingabe!!!");
            System.out.print(name[4]+ ": ");
            reihe[4]=in.nextInt();
        }
        System.out.println("*******************************************");
       
        Arrays.sort(reihe);
        for(int n=0; n<reihe.length; n++){
            System.out.println(reihe[n]);
        }
    }

}
 

Saheeda

Top Contributor
Hi,

das Problem ist, dass es zwischen den Namen der Autos und ihren Noten keinen direkten Zusammenhang gibt. Momentan speicherst du sie einfach nur an derselben Position im Array. Sortierst du das eine Array, geht dir jegliche Beziehung verloren.

Idee 1:
Du bastelst dir eine Klasse, welche den Namen des Autos und seine Bewertung enthält. Diese Klasse müsste das Interface Comparable implementieren, um sortierbar zu sein.

Idee 2:
Du implementierst einen eigenen Sortieralgorithmus, der auch die Namen immer mit tauscht.
 

Anfänger2011

Bekanntes Mitglied
So hab das jetzt mal geschrieben. Das Prinzip dahinter entspricht der Idee1 von Saheeda.

Die Hauptklasse:
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package rechner;

/**
*
* @author anfänger2011
*/
public class Rechner {

    /**
     * @param args the command line arguments
     */
   
    private static Autos autos [];
    private static int anzahlAnAutos;
   
    public static void initArray(){
        autos = new Autos[anzahlAnAutos];
        for(int x = 0; x < anzahlAnAutos; x++){
            autos[x] = new Autos("Auto" + x, (int)((Math.random()) * 6 + 1));
        }
    }
   
    public static void eingabe(){
        //wird derzeit von initArray übernommen ->
        //musst du selber schreiben bzw. einfach aus deinem Programm uebernehmen
    }
   
    public static void main(String[] args) {
        anzahlAnAutos = 5;
        initArray();
        eingabe();
        sortieren();
        ausgabe();
    }
   
    public static void sortieren(){
        String name;
        int note;
        for(int i=1; i<autos.length; i++) {
            for(int x=0; x<autos.length-i; x++) {
                if(autos[x].getNote() > autos[x+1].getNote()){
                    name = autos[x+1].getName();
                    note = autos[x+1].getNote();
                    autos[x+1].setName(autos[x].getName());
                    autos[x+1].setNote(autos[x].getNote());
                    autos[x].setName(name);
                    autos[x].setNote(note);
                }
            }
        }
    }
   
    public static void ausgabe(){
        for(int x = 0; x < anzahlAnAutos; x++){
            System.out.println(autos[x].getName() + ": " + autos[x].getNote());
        }
    }
   
}
Die Klasse für das Array:
Java:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package rechner;

/**
*
* @author
*/
public class Autos {
   
    private int note;
    private String name;
   
    public Autos(String name, int note){
        this.name = name;
        this.note = note;
    }
   
    public String getName(){
        return name;
    }
   
    public int getNote(){
        return note;
    }
   
    public void setName(String name){
        this.name = name;
    }
   
    public void setNote(int note){
        this.note = note;
    }
   
}
 

alexbo92

Mitglied
Hey super.
Werde mich mal mit dem Code auseinandersetzen und diesen versuchen zu verstehen.
Frage noch: wie würde ich Idee 2 denn umsetzen?
 

InfectedBytes

Top Contributor
Im Grunde ist der Code von Anfänger2011 eine Mischung aus den beiden Ideen von Saheeda.
Und der Code ist zugegebenermaßen nicht ganz so sauber programmiert^^

Für Idee2 kannst du dir ja mal ein paar einfache (Java) Sortieralgorithmen ansehen. Ein ganz einfacher (wenn auch langsamer) ist Bubblesort.
Der wichtige Unterschied ist nun, dass du dein Bewertungs-array zum vergleichen nutzt. Wenn dann zwei Einträge getauscht werden müssen, tauscht du halt zusätzlich noch die Einträge deines Auto-Arrays.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L 2 dimensionales Array, Problem der Ausgabe Java Basics - Anfänger-Themen 4
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
A Array problem Java Basics - Anfänger-Themen 16
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
B Array Problem Java Basics - Anfänger-Themen 3
F Problem mit der Aufgabe(Array) Java Basics - Anfänger-Themen 21
H boolean Array Problem Java Basics - Anfänger-Themen 7
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
S Problem: Array alle Einträge gleich Java Basics - Anfänger-Themen 10
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
G Problem mit Array Java Basics - Anfänger-Themen 2
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
C Problem mit Arrays im Array Java Basics - Anfänger-Themen 11
E Array Problem Java Basics - Anfänger-Themen 1
L Problem mit Array Programm Java Basics - Anfänger-Themen 2
M Array problem Java Basics - Anfänger-Themen 9
M If und Array-Problem Java Basics - Anfänger-Themen 6
P OOP Array-Problem Java Basics - Anfänger-Themen 5
S Problem mit Array.Length Java Basics - Anfänger-Themen 2
R Array Problem Java Basics - Anfänger-Themen 17
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
E Array zu Liste - kleines Problem Java Basics - Anfänger-Themen 6
F Problem mit Array Java Basics - Anfänger-Themen 8
N OOP Problem mit Array Java Basics - Anfänger-Themen 17
M Problem mit 2D Array Java Basics - Anfänger-Themen 3
M Problem mit Array und replace Java Basics - Anfänger-Themen 3
D Array Problem Java Basics - Anfänger-Themen 4
F Array Problem !? Java Basics - Anfänger-Themen 6
M Erste Schritte Array Problem Java Basics - Anfänger-Themen 8
F Problem mit Array, Java Basics - Anfänger-Themen 4
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
B Problem mit Array Java Basics - Anfänger-Themen 5
J Array Problem Java Basics - Anfänger-Themen 2
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
N Array problem bei einem magischen Quadrats Java Basics - Anfänger-Themen 3
P Klassen Klassen mit Array Problem Java Basics - Anfänger-Themen 4
T Problem mit Array Konvertierung Java Basics - Anfänger-Themen 13
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
L Array Problem NullPointerException Java Basics - Anfänger-Themen 3
K Problem: Array String to Integer Java Basics - Anfänger-Themen 2
M Char-Array Problem Java Basics - Anfänger-Themen 6
D Problem mit TextFeld Array Java Basics - Anfänger-Themen 18
A Array Zugriff- Problem Java Basics - Anfänger-Themen 5
V 2D - Objekt Array Problem Java Basics - Anfänger-Themen 3
K Java Array Problem Java Basics - Anfänger-Themen 3
L Problem mit Array Java Basics - Anfänger-Themen 3
K kleines Array-Problem Java Basics - Anfänger-Themen 6
X Array out of bounds problem Java Basics - Anfänger-Themen 7
M Array Problem Java Basics - Anfänger-Themen 2
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
E Array Problem... Java Basics - Anfänger-Themen 14
P array problem Java Basics - Anfänger-Themen 9
P Codeschnipsel Verständnis Problem (Array) Java Basics - Anfänger-Themen 6
F Array Problem bei ByteburgTarif Java Basics - Anfänger-Themen 2
P Problem mit Laden und Ausgeben eines array-Objekts Java Basics - Anfänger-Themen 4
A Problem mit einem Array aus JButtons Java Basics - Anfänger-Themen 4
D Array multiplikations Problem Java Basics - Anfänger-Themen 26
D Array Problem Java Basics - Anfänger-Themen 5
B Mehrdimensionale Array Problem Java Basics - Anfänger-Themen 12
T Array-Vector Problem Java Basics - Anfänger-Themen 18
T Blutiger Anfänger mit Array Problem Java Basics - Anfänger-Themen 8
T problem mit array Java Basics - Anfänger-Themen 9
S String split array.length Problem Java Basics - Anfänger-Themen 3
B Problem mit Object Array Java Basics - Anfänger-Themen 8
W Problem mit BubbleSort und Array Java Basics - Anfänger-Themen 10
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
G Array-Problem Java Basics - Anfänger-Themen 3
M sinus berechnen array problem Java Basics - Anfänger-Themen 2
C array problem Java Basics - Anfänger-Themen 7
G Array ,Matrix Problem Java Basics - Anfänger-Themen 20
Antoras Problem mit Array Java Basics - Anfänger-Themen 5
K Problem mit 2 Dimensionalen Array Java Basics - Anfänger-Themen 4
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G Kleines Problem mit Array Java Basics - Anfänger-Themen 14
0 Array problem Java Basics - Anfänger-Themen 4
S Problem mit Array-Erstellung Java Basics - Anfänger-Themen 5
A array problem Java Basics - Anfänger-Themen 4
G array Problem Java Basics - Anfänger-Themen 9
H Problem mit array Java Basics - Anfänger-Themen 5
zilti Array-Problem Java Basics - Anfänger-Themen 6
J Array - Vertauschen Problem mit char/int Java Basics - Anfänger-Themen 6
M Problem mit Array in Methodenkopf Java Basics - Anfänger-Themen 2
K problem beim schreiben in ein int-array Java Basics - Anfänger-Themen 9
S JTable Problem mit einzufügendem Array Java Basics - Anfänger-Themen 6
D Problem mit Array brauche schnell Hilfe Java Basics - Anfänger-Themen 11
R Problem mit AbstractTableModel oder Array! Java Basics - Anfänger-Themen 5
G Problem mit Array bei einem 4-Gewinnt Spiel Java Basics - Anfänger-Themen 2
K problem mit resultset und 2d-array Java Basics - Anfänger-Themen 3
G Problem mit array Java Basics - Anfänger-Themen 2
P Array-Problem Java Basics - Anfänger-Themen 4
L Array Problem Java Basics - Anfänger-Themen 9
B Array Manipulation Problem Java Basics - Anfänger-Themen 11
B Array Problem (out of Bounds Exception) Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben