tutorials.de Buch-Aktion 02/2012
Like Tree3Danke
  • 1 Beitrag von vfl_freak
  • 1 Beitrag von vfl_freak
  • 1 Beitrag von Vereth
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1248
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Cranus Cranus ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    3
    Erstmal ein herzliches Hallo.

    Nun aber zum Kern meiner Frage.

    Ich habe folgende Aufgabe in der Schule erhalten.

    Grundlage hierfür ist eine Textdatei, in der Artikeldaten enthalten sind. Jede Textzeile hat folgenden Aufbau:
    Art.Nr.: 8 Zeichen
    Art.Bez.:30 Zeichen
    ME: 2 Zeichen
    MaxBest.:4Zeichen
    MinBest.:4Zeichen
    Herst.:41 Zeichen
    Preis:7Zeichen
    MaxPreis:7Zeichen
    MinPreis:7 Zeichen
    Lieferzeit:2Zeichen
    Zwischen den Angaben befindet sich jeweils ein trennendes Leerzeichen. Löse folgende Aufgabe durch ein Java-Projekt:

    Es ist eine Artikelliste nach Bestandswerten (=Bestand * Preis) fallend sortiert auszugeben, die in der ME (Mengeneinheit) "QM" geliefert werden. Das Unterprogramm führe bei jedem Aufruf den Vergleich benachbarter Werte aus. Die Artikelbezeichnungen und die Mengeneinheiten(ME) sind mit aus zu geben, ebenso die prozentualen Abweichungen von den Max.- und Min.-Werten (bei Verwendund der Max.- bzw. Min.-Preisen).

    Ein gesondertes Unterprogramm soll die Daten aus der Textdatei lesen und bereitstellen.

    Seid etlichen Wochen knaupel ich nun an dem Programm rum, es will aber einfach nicht laufen.
    So sieht bisher mein Quellcode aus:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    
    package main;
     
    import java.io.*;
    import java.text.*;
    import java.util.*;
     
     
    public class main {
     
            ArrayList<String>ArtikelListe = new ArrayList<String>();
            static String Einzelartikel;
            int z =0;
            Einzelartikel = Einlesen(z);
            Artikel_Class Instanz = new Artikel_Class(Einzelartikel);
            if (Einzelartikel == "Fehler") System.out.println("Lesefehler");
            while (Einzelartikel != null)
            return null;
            {
                if(Instanz.Mengeneinheit == "QM");
                {
                    ArtikelListe.add(Einzelartikel);
                    z = z+1;
                    Einzelartikel = Einlesen(z);
                }
            
                
                    z = z+1;
                    Einzelartikel = Einlesen(z);
                }
                if (Einzelartikel == "Fehler") System.exit(0);
                
                System.out.println(ArtikelListe);
                ArtikelListe = Bubblesort(ArtikelListe);
                System.out.println("Artikelbezeichnung  ME Bestand  Preis  Best.Wert  ProzAbweichung");
                System.out.println();
                System.out.println(ArtikelListe);
            }
            public static String Einlesen (int i)
            {   
            int pos = 126 * i;
            try
            {
                File FileDatei = new File("ARTIKEL.txt");
                FileReader FileReader = new FileReader(FileDatei);
                BufferedReader Reader = new BufferedReader(FileReader);
                Reader.skip(pos);
                Einzelartikel = Reader.readLine();
                System.out.checkError();
                Reader.close();
                return Einzelartikel;
            }
            catch (Exception Fehler)
            {
                System.out.println("Es trat folgender Fehler auf:" + Fehler);
                return "Fehler";
            }
                    }
            public static ArrayList<String> BubbleSort(ArrayList<String> ArtikelListe)
            {
                int Zeilenanzahl = ArtikelListe.size() -1;
                String a, b;
                Double BW_a, BW_b;
                for (int i=0; i<Zeilenanzahl; i++)
                {
                    for (int j=0; j<Zeilenanzahl; j++)
                    {
                        a = ArtikelListe.get(j);
                        b = ArtikelListe.get(j+1);
                        {
                        }
                    }
                }
                                                       return ArtikelListe;
            }
            }


    ___________________________________

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    package main;
     
    public class Artikel_Class
    {
        String Artikelbezeichnung, Hersteller, Mengeneinheit;
        int Artikelnummer, Bestand, Minimalbestand, Maximalbestand, Lieferzeit;
        public String Einzelartikel;
        public Artikel_Class(String Artikelzeile, double Preis, double Maximalpreis, double Minimalpreis, double Bestandswert, double MinBestandwert, double MaxBestandswert, Object ProzAbweichung, int MinBestandswert)
        {
            Artikelnummer=Integer.parseInt(Artikelzeile.substring(0,7));
            Artikelbezeichnung=Artikelzeile.substring(8,38);
            Mengeneinheit=Artikelzeile.substring(39,41);
            Bestand=Integer.parseInt(Artikelzeile.substring(42,46));
            Maximalbestand=Integer.parseInt(Artikelzeile.substring(47,51));
            Minimalbestand=Integer.parseInt(Artikelzeile.substring(52,56));
            Hersteller=Artikelzeile.substring(57,98);
            Preis = Double.parseDouble(Artikelzeile.substring(99,106));
            Maximalpreis = Double.parseDouble(Artikelzeile.substring(107,114));
            Minimalpreis = Double.parseDouble(Artikelzeile.substring(115,122));
            Lieferzeit=Integer.parseInt(Artikelzeile.substring(123,124));
            Bestandswert = Preis*Bestand;
            MinBestandwert = Minimalbestand*Minimalpreis;
            MaxBestandswert = Maximalbestand*Maximalpreis;
            ProzAbweichung = (MinBestandswert*100)/MaxBestandswert;
        }
    }


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

    Bitte helft mir, ich weiß mir keinen Rat mehr.
    Vielen Dank für euren schnellen Rat und Hinweis.
    Geändert von Cranus (14.04.10 um 09:19 Uhr)
     

  2. #2
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin und Willkommen bei Tutorials.de !

    zuerst ein Hinweis: nutze bitte die Code-Tags, damit Dein Code lesbar wird !
    Du kannst dies entweder über den '#'-Button im Editor tun oder indem Du den Code händisch mit [_CODE_][_/CODE_] oder in diesem Fall
    [_JAVA_][_/JAVA_] (jeweils ohne die Unterstriche klammerst

    Seid etlichen Wochen knaupel ich nun an dem Programm rum, es will aber einfach nicht laufen.
    Du solltest aber bitte auch schon beschreiben, was genau nicht funktioniert (resp. ggf. auch, was das Programm denn geplant tun soll) ... andernfalls wird schwierig Dir zu helfen!

    Nix für ungut!
    Gruß
    Klaus
    Cranus bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #3
    Cranus Cranus ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    3
    Ich habe den Fehler nicht gefunden. Und was das Programm können soll, steht vor dem Code.

    Im Grunde genommen liest das Programm die Datensätze aus der Textdatei und prüft ob der "QM" als Mengeneinheit vorhanden ist. Hiernach sortiert es fallend diese Datensätze und soll sie hiernach ausgeben.
    Geändert von Cranus (14.04.10 um 10:03 Uhr)
     

  4. #4
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.098
    Moin,

    Zitat Zitat von Cranus Beitrag anzeigen
    Ich habe den Fehler nicht gefunden.
    Schon klar, sonst hättest Du hier ja auch nicht gefragt

    Zitat Zitat von Cranus Beitrag anzeigen
    Und was das Programm können soll, steht vor dem Code
    Ich habe auch nicht das gesamte Programm, sondern das spezielle Fehlverhalten gemeint
    Beschreibe doch einfach genau, wo was nicht so klappt, und wie Du es Dir an der Stelle ggf. vorstellst

    Gruß
    Klaus
    Cranus bedankt sich. 
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #5
    Cranus Cranus ist offline Grünschnabel
    Registriert seit
    Apr 2010
    Beiträge
    3
    ok mein Fehler. Dann hier nochmal auf eine hoffentlich bessere Art und Weise.

    Also die Hauptaufgabe bei dem ganzen Projekt:

    Grundlage hierfür ist eine Textdatei, in der Artikeldaten enthalten sind. Jede Textzeile hat folgenden Aufbau:
    Art.Nr.: 8 Zeichen
    Art.Bez.:30 Zeichen
    ME: 2 Zeichen
    MaxBest.:4Zeichen
    MinBest.:4Zeichen
    Herst.:41 Zeichen
    Preis:7Zeichen
    MaxPreis:7Zeichen
    MinPreis:7 Zeichen
    Lieferzeit:2Zeichen
    Zwischen den Angaben befindet sich jeweils ein trennendes Leerzeichen.

    besagte Textdatei:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    51600226 Futtertuer TV-F14,5 9*20 R     ST 0684 0860 0150 Vereinigte Bauelementewerke Stralsund     1529.80 1595.80 1490.50 4
    51700227 Blendrahmentuer TG2-B 9*20 L   ST 0012 0480 0080 Forstwirtschaftsbetrieb Waren             1859.20 1899.00 1595.00 3
    51700228 Blendrahmentuer TG2-B 9*20 R   ST 0310 0480 0080 Forstwirtschaftsbetrieb Waren             1838.00 1899.00 1595.00 3
    52100230 Likolit-Belag Extra            QM 0100 2000 0500 Linoleumwerke Kohlmuehle                  0038.15 0047.95 0038.15 5
    52100231 Radeberger Treppenbelag        QM 0210 0800 0200 Bauproduktion Radeberg                    0029.55 0029.55 0028.95 1
    52100232 Stahl-Pur-Bit-Dachelement      QM 1150 3000 0800 Holz- und Leichtmetallbauelemente Leipzig 0109.95 0119.00 0099.30 1
    61100240 Brausekabine                   ST 0005 0080 0010 TGA Magdeburg                             0962.50 0983.45 0910.00 2
    61100241 Praezisionsverdunkl.-Anl.15*20 ST 0007 0160 0040 Licht- und Sonnenschutzanl. Friedrichroda 0316.60 0333.20 0316.60 5

    Löse folgende Aufgabe durch ein Java-Projekt:

    Es ist eine Artikelliste nach Bestandswerten (=Bestand * Preis) fallend sortiert auszugeben, die in der ME (Mengeneinheit) "QM" geliefert werden. Das Unterprogramm führe bei jedem Aufruf den Vergleich benachbarter Werte aus. Die Artikelbezeichnungen und die Mengeneinheiten(ME) sind mit aus zu geben, ebenso die prozentualen Abweichungen von den Max.- und Min.-Werten (bei Verwendund der Max.- bzw. Min.-Preisen).

    Ein gesondertes Unterprogramm soll die Daten aus der Textdatei lesen und bereitstellen.


    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    
    package main;
     
    import java.io.*;
    import java.text.*;
    import java.util.*;
     
     
    public class main
    {
     
            ///**
             //* @param args
             //*/
            public static void main(String[] args)
            {
                /** Das Programm liest alle Artikel mit Mengenangabe QM aus,
                 *  berechnet den Bestandswert und Prozentuale Abweichungen und 
                 *  sortiert fallend nach Bestandswerten mit dem Vergleich benachbarter Werte
                 */
                ArrayList<String> ArtikelListe = new ArrayList<String>(); //ArrayListe fŸr DatensŠtze
                String Einzelartikel;
                int z =0;
                
                //DecimalFormat uf = new DecimalFormat( "##,##0.00" );      // Formatierung für die Ausgabe, DiffEuro
                //DecimalFormat zf = new DecimalFormat( "#0.00");               // DiffProz
                DecimalFormat df = new DecimalFormat( "####0.00" );         // Formatierung
                //DecimalFormatSymbols ds = new DecimalFormatSymbols();
                
                Einzelartikel = Einlesen(z);    //erster Aufruf UP Einlesen (vor der Schleife)
                System.out.println(Einzelartikel);
                if (Einzelartikel == "Fehler") System.out.println("Lesefehler");    //Fehlerausgabe
                        
                while (Einzelartikel!= null)        //Beginn EndgeprŸfte while-Schleife
                {
                    Artikel_Class Instanz = new Artikel_Class(Einzelartikel);   //Erzeugung neue Instanz der Klasse 
                                                                                //Artikel_Class und †bergabe des Inhalts
                                                                                //von String Einzelartikel  
                    //Einzelartikel = Instanz.Einzelartikel;    //†bernahme String Einzelartikel aus der Instanz
                
                    //System.out.println(Instanz.Artikelnummer);
                    //System.out.println(Instanz.Artikelbezeichnung);
                    //System.out.println(Instanz.Mengeneinheit);
                    //System.out.println(Instanz.Bestand);
                    //System.out.println(Instanz.Maximalbestand);
                    //System.out.println(Instanz.Minimalbestand);
                    //System.out.println(Instanz.Hersteller);
                    //System.out.println(Instanz.Preis);
                    //System.out.println(Instanz.Maximalpreis);
                    //System.out.println(Instanz.Minimalpreis);
                    //System.out.println(Instanz.Lieferzeit);
                    System.out.println(Instanz.Bestandswert);
                    
                    
                    if (Instanz.Mengeneinheit == "QM")
                    {
                    //Einzelartikel = Einzelartikel+Instanz.Bestandswert+Instanz.ProzAbweichung;
                    
                        
                        Einzelartikel = Instanz.Artikelbezeichnung + " " + Instanz.Mengeneinheit + " " + Instanz.Bestand + " " + Instanz.Preis + " " + df.format(Instanz.Bestandswert) + " " + df.format(Instanz.ProzAbweichung);
                        
                        ArtikelListe.add(Einzelartikel);    //in die ArtikelListe aufnehmen
                        z = z+1;    //Zähler erhöhen        
                        Einzelartikel = Einlesen(z);    //UP Einlesen aufrufen
                    }
                    else
                    {
                        z = z+1;    //Zähler erhšhen        
                        Einzelartikel = Einlesen(z);    //UP Einlesen aufrufen
                    }
     
                    System.out.println(Einzelartikel);              
                    if (Einzelartikel == "Fehler") System.exit(0);  //falls UP Fehler zurückgibt, Abbruch Programm      
                }
                System.out.println(ArtikelListe);
                
                ArtikelListe = BubbleSort(ArtikelListe);    //UP Bubblesort sortiert ArtikelListe nach Bestandswerten
                
                System.out.println("Artikelbezeichnung    ME  Bestand   Preis   Best.Wert   Proz.Abweichung");
                System.out.println();
                System.out.println(ArtikelListe);
                        
            }
            
            public static String Einlesen(int i)    //UP Einlesen wird gestartet
            {
                int pos = 126 * i;  //Deklaration & Initialisierung der Positionierungsvariable
                
                String Einzelartikel;   
                try
                {
                        File Datei = new File("ARTIKEL.txt");   //lesen der einzelnen Datensätze unter 
                        FileReader FileReader = new FileReader(Datei);  //Verwendung der try-catch Anweisung 
                        BufferedReader Reader = new BufferedReader(FileReader); //(Exception-Handling)
                        
                        Reader.skip(pos);   //Positionierung auf nŠchstem Datensatz
                        Einzelartikel = Reader.readLine();  //Datensatz wird gelesen
                        
                        System.out.checkError();
                        Reader.close(); //Lesepuffer wird geschlossen
                        
                        return Einzelartikel;   //zurück zum rufendem Programm mit Datensatz
                                                //wenn kein Datensatz mehr, dann gibt >null< zurück
                }
                catch(Exception Fehler)
                {
                    System.out.println("Es trat folgender Fehler auf: " + Fehler);  //weitere Fehlerbehandlung erfolgt im HP
                    return "Fehler";
                }
            }
            
            
            public static ArrayList<String> BubbleSort(ArrayList<String> ArtikelListe)
            {
                int Zeilenanzahl = ArtikelListe.size() -1;  //Bestimmt die anzahl der DatensŠtze in der Liste
                
                String String_A, String_B;  //Deklarieren der nštigen Variablen
                Double BestWert_A, BestWert_B;
                
                //DecimalFormat uf = new DecimalFormat( "##,##0.00" );      // Formatierung für die Ausgabe, DiffEuro
                //DecimalFormat zf = new DecimalFormat( "#0.00");               // DiffProz
                
                
                for (int i=0; i < Zeilenanzahl; i++)
                {
                    for (int j=0; j < Zeilenanzahl; j++)
                    {
                        String_A = ArtikelListe.get(j); //zu vergleichende String aus der Liste entnehmen
                        String_B = ArtikelListe.get(j+1);
                        
                        BestWert_A = Double.parseDouble(String_A.substring(44,52)); //Bestandswert aus Strings auslesen
                        BestWert_B = Double.parseDouble(String_B.substring(44,52));
                        
                        if (BestWert_B < BestWert_A)    //Ist Bestandswert B kleiner als A?
                        {
                            ArtikelListe.set(j+1, String_A);    //dann vertausche Datensätze
                            ArtikelListe.set(j, String_B);
                        }
                    }
                }
                    return ArtikelListe;    //fallend sortierte ArtikelListe zurück an HP
            }
        }

    Dazu habe ich die Artikel_Class programmiert, in der die Positionierung und Formatierung der einzelnen Strings festgelegt wird.

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    
    package prüfung_info_42;
     
    import java.text.*;
     
    public class Artikel_Class  //KLasse wird deklariert
    {
        //Klassenvariablen werden deklariert (Bestandteile von ARTIKEL.txt)
        String Artikelbezeichnung, Hersteller, Mengeneinheit;
        int Artikelnummer, Bestand, Minimalbestand, Maximalbestand, Lieferzeit;
        double Preis, Maximalpreis, Minimalpreis, Bestandswert, MinBestandswert, MaxBestandswert, ProzAbweichung;
        public String Einzelartikel;    //Einzelartikel als String definiert
        
        DecimalFormat df = new DecimalFormat( "####0.00" );         // Formatierung
        DecimalFormatSymbols ds = new DecimalFormatSymbols();
        
        //Anfang Konstruktor
        
        
        public  Artikel_Class(String Artikelzeile)
        {
            Artikelnummer=Integer.parseInt(Artikelzeile.substring(0,8));
            Artikelbezeichnung=Artikelzeile.substring(9,39);
            Mengeneinheit=Artikelzeile.substring(40,42);
            Bestand=Integer.parseInt(Artikelzeile.substring(43,47));
            Maximalbestand  = Integer.parseInt(Artikelzeile.substring(48,52));
            Minimalbestand = Integer.parseInt(Artikelzeile.substring(53,57));
            Hersteller= Artikelzeile.substring(58,98);
            Preis= Double.parseDouble(Artikelzeile.substring(99,107));
            Maximalpreis= Double.parseDouble(Artikelzeile.substring(108,114));
            Minimalpreis= Double.parseDouble(Artikelzeile.substring(115,123));
            Lieferzeit = Integer.parseInt(Artikelzeile.substring(124, 125));
            
            ds.setDecimalSeparator('.');                                // Setzt Dezimaltrennzeichen auf '.'
            df.setDecimalFormatSymbols(ds);                             // notwenig für Konvertierung String -> Double
     
            //Umsatz = Math.round(Preis * Stck * 100) / 100.;
            //Einzelartikel = df.format(Umsatz) + " " + Anr + " " + Abez;           
            
            
            
            Bestandswert = Math.round(Preis * Bestand);
            MinBestandswert = Minimalbestand * Minimalpreis;
            MaxBestandswert = Maximalbestand * Maximalpreis;
            ProzAbweichung = Math.round(MinBestandswert * 100) / MaxBestandswert;
            Einzelartikel = Artikelbezeichnung + " " + Mengeneinheit + " " + Bestand + " " + Preis + " " + df.format(Bestandswert) + " " + ProzAbweichung;
            
        }   
    }

    Zum einen liest er zwar die TXT Datei aus, gibt aber entweder alle Datensätze aus, keinen, oder er nimmt immer 1 Zeichen beim nächsten String weg, sprich Datensatz 2 hat 1 Zeichen weniger, usw.

    Was es nun tun soll; es soll die TXT Datei nach allen Datensätzen durchsuchen, also er überprüft alle Datensätze, und soll im Endeffekt nur die Datensätze ausgeben, deren Mengeneinheit "QM" ist.
     

  6. #6
    Avatar von Vereth
    Vereth Vereth ist offline Mitglied Brokat
    Registriert seit
    Nov 2009
    Ort
    Dortmund
    Beiträge
    372
    • Strings vergleicht man nicht mit dem Operator == , sondern mit der equals-Methode.
    • Wenn du schon eine Artikel-Klasse hast, dann solltest du die ArrayList auch vom Typ Artikel_Class machen.
    • Für den Vergleich von zwei Artikel_Class-Objekten ist es besser, wenn du das Interface Comparable implementierst. Mit Hilfer der compareTo-Methode kannst du dann in deiner Bubblesort-Methode direkt zwei Objekte miteinander vergleichen, welche die Bestandswerte als double-Zahlen vergleichen.
    • Für die Ausgabe als String solltest du in deiner Klasse die toString()-Methode überschreiben und bei der Ausgabe aufrufen.
    • Für das Vertauschen brauchst du eine Zwischenvariable, sonst überschreibst du einen Wert.
    • Du brauchst die Artikelliste nicht als Funktionswert zurückzugeben, weil Bubblesort in-place arbeitet, d.h. die übergebene ArrayList verändert.
    • Die Schleifenzähler in deiner Bubblesort-Funktion werden falsch durchlaufen. Richtig ist:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    public static void BubbleSort(ArrayList<Artikel_Class> ArtikelListe)
    {
        Artikel_Class tmp;
        int Zeilenanzahl = ArtikelListe.size() -1;
        for (int i=Zeilenanzahl-1; i > 0; i--)
        {
            for (int j=0; j < i; j++)
            {
                if ( ArtikelListe.get(j).compareTo(ArtikelListe.get(j+1)) != -1 )
                { continue; }
                tmp = ArtikelListe.get(j);
                ArtikelListe.set(j    , ArtikelListe.get(j+1));
                ArtikelListe.set(j+1, tmp);
            }
        }
    }
    Cranus bedankt sich. 
    Vielen Dank für die Nutzung des Bewerten- und Danke-Buttons

    Wenn man sieht, dass man einen anderen glücklich gemacht hat, ist die Welt um zwei glückliche Menschen reicher.

Ähnliche Themen

  1. [Excel] Tabelle nach mehreren Kriterien sortieren
    Von mc_gulasch im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 29.06.06, 11:24
  2. Antworten: 3
    Letzter Beitrag: 05.08.04, 10:45
  3. Antworten: 3
    Letzter Beitrag: 24.05.04, 18:43
  4. Aus Textdatei auslesen und sortieren
    Von scadoXus im Forum PHP
    Antworten: 6
    Letzter Beitrag: 07.05.04, 17:06
  5. Tabelleninhalt nach verschiedenen Kriterien sortieren
    Von acquire im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 30.04.04, 10:24