if - else Baum vereinfachen

DaveIT

Mitglied
Hallo,

es geht um Folgendes:

Ich habe ein Programm mit vier Grundelementen (Arbeitszeiten, Regiezeiten, Pausenzeiten, Fehlerzeiten) geschrieben. Jedes Element hat eine Startzeit. Mein Programm verfügt über ein Archiv in dem ich alle gespeicherten Werte auswählen kann.

Zum Auslesen hab ich mir ein eigenes JTextPane gebaut welches die Elemente nach der Zeit geordnet ausgeben soll. Hier ist dann auch mein Problem:

Für dieses ordnen brauche ich 200 Codezeilen if-else Verschachtelung. Zuerst prüfe ich ob noch Elemente vorhanden sind. Allein dadurch entstehen 16 Fälle.
Code:
if(gesA > stepA){
                if(gesR > stepR){
                    if(gesP > stepP){
                        if(gesF > stepF){
usw...

Danach ermittle ich den nächsten Wert der ausgegeben werden muss. Hier muss ich auf alle Elemente prüfen die noch vorhanden sind.
Code:
 if((arbeit.getArbeitszeiten().get(stepA).getStart().compareTo(arbeit.getRegiezeiten().get(stepR).getStart()) < 1)){
                                if((arbeit.getArbeitszeiten().get(stepA).getStart().compareTo(arbeit.getPausen().get(stepP).getStart()) < 1)){
                                    if((arbeit.getArbeitszeiten().get(stepA).getStart().compareTo(arbeit.getFehler().get(stepF).getStart()) < 1)){
                                        outA(arbeit.getArbeitszeiten().get(stepA));
                                        stepA++;

Nach der Ausgabe durchlaufe ich alles solange bis keine Elemente mehr vorhanden sind.


Diese Lösung funktioniert zwar, ist aber sehr aufwendig und unübersichtlich. Bis jetzt ist mir noch keine bessere Methode eingefallen. Bin für Anregungen und Tipps dankbar.

LG
 
C

Camino

Gast
In was für einer Art "Archiv" liegen die Daten vor? Datenbank, Textdatei, XML...? Wie sieht denn die Struktur der einzelnen Datensätze aus? Wie ist die Startzeit strukturiert? Wenn es eine Datenbank ist, würde ich das sortieren der Startzeiten von der DB übernehmen lassen. Wenn nicht, dann einlesen in eine einheitliche Struktur (Klasse) und diese dann im Programm sortieren.

Zuerst prüfe ich ob noch Elemente vorhanden sind.

Wozu das? Les doch einfach alle Daten ein, die vorhanden sind. Warum prüfst du vorher, ob noch welche da sind? Versteh ich nicht.
 

DaveIT

Mitglied
Die Daten liegen in einer XML Datei. Struktur wie folgt:

[XML]<..zeiten>
<...zeit>
<startzeit> "Wert" </startzeit>
...weitere Informationen
</...zeit>
</..zeiten>
[/XML]
Wozu das? Les doch einfach alle Daten ein, die vorhanden sind. Warum prüfst du vorher, ob noch welche da sind? Versteh ich nicht.

Weil ich z.B.:
Code:
arbeit.getArbeitszeiten().get(stepA).getStart()
nur aufrufen kann wenn ich einen gültigen Index habe. Sonst gibts eine Exception.
 

HoaX

Top Contributor
Schreib dir eine Klasse die Comparator implementiert, bzw lasse deine Arbeitszeit-Klasse Comparable implementieren. Dort implementierst du dann den Vergleich für zwei Objekte.
Danach musst du nurnoch
Java:
List<Arbeitszeit> zeiten = arbeit.getArbeitszeiten();
Collections.sort(zeiten);
aufrufen und der Inhalt ist sortiert.
 
C

Camino

Gast
Weil ich z.B.:
Code:
arbeit.getArbeitszeiten().get(stepA).getStart()
nur aufrufen kann wenn ich einen gültigen Index habe. Sonst gibts eine Exception.

Dann hast du da wohl irgendwas falsch programmiert. Was für ein gültiger Index überhaupt??? Schreib deinen Code doch so um, dass du alle vorhandenen Datensätze einliest und dann sortierst. Ohne vorher zu überprüfen, ob die Datensätze auch vorhanden sind. Das siehst du ja, wenn du sie eingelesen hast.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Mehrfache if-else-Abfrage zusammenfassen Allgemeine Java-Themen 51
ReinerCoder Case statt if else Abfragen?! Allgemeine Java-Themen 8
M Variablen If - Else Wiederholungsfehler Allgemeine Java-Themen 3
L Vererbung If-Else ersetzen durch was? Allgemeine Java-Themen 20
O Darstellung von else if anweisung im struktogramm? Allgemeine Java-Themen 1
R Wie schaffe ich es, dass java zB 100 zählt ohne ständig "else if" hinschreiben zu müssen? Allgemeine Java-Themen 7
J if else Anweisung macht nicht was es soll. Wieso? Allgemeine Java-Themen 10
K Eclipse Alternativkonstrukte (Verzweigungen: if, switch,else..) Allgemeine Java-Themen 4
S Else-Anweisung Problem Allgemeine Java-Themen 17
B Berechnung von Punkten/ If-else Strategie?! Allgemeine Java-Themen 51
M if - else Abfrage beenden Allgemeine Java-Themen 4
M if, else, etc. als Membervariablen? Allgemeine Java-Themen 14
P if(a) else if (b) else if (c) . Frage Allgemeine Java-Themen 2
G die mittlere von 5 Zahlen nur mit if und else finden Allgemeine Java-Themen 48
U Kompilieren einer großen Datei if-else = StackOverflowError Allgemeine Java-Themen 4
W kompliziertes Konstrukt von Schleifen/If/else. Rekursion? Allgemeine Java-Themen 22
G switch case VS. if.else if Allgemeine Java-Themen 2
H if - else if-else bessere Lösung gesucht Allgemeine Java-Themen 4
H If anweisungen zu verschachtelt? else without if Allgemeine Java-Themen 8
D Performancefrage zu "else if" und "||" Allgemeine Java-Themen 10
G if . else ? Allgemeine Java-Themen 36
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Karl_Der_Nette_Anfänger Hat wer ne Lösung für verknüpfte Postleitzahlen? (Baum/Wurzel Struktur) Allgemeine Java-Themen 11
D 2,3-Baum rekursiv erstellen Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
L Dependency Injection für Baum-Einträge Allgemeine Java-Themen 9
M Iterator für trinären Baum Allgemeine Java-Themen 0
N Rekursiv Höhe Baum Allgemeine Java-Themen 3
D Baum zeichnen hilfe Allgemeine Java-Themen 4
A AVL-Baum - Testen ob einer vorliegt Allgemeine Java-Themen 4
M Eclipse Stackoverflow beim Einlesen von großen Bilder in kd Baum Allgemeine Java-Themen 15
G Datentypen TreeMap nach Color sortiert (kd-Baum) Allgemeine Java-Themen 8
M Baum nach Stack plus Objektkonvertierung Allgemeine Java-Themen 5
S Baum mit vordefinierten Werten befüllen Allgemeine Java-Themen 2
D Datenstruktur für Hierarchie/Baum mit Tiefe 3 Allgemeine Java-Themen 8
D Rot-Schwart-Baum denkfehler im code? Allgemeine Java-Themen 6
M Baum Allgemeine Java-Themen 3
K Dependency Baum erstellen/analysieren Allgemeine Java-Themen 2
J Baum mit Adjazensmatrix Allgemeine Java-Themen 8
MQue Tidy HTML baum durchlaufen Allgemeine Java-Themen 5
C Breitendurchlauf Baum. Vorgehen unklar. Allgemeine Java-Themen 23
C Fehler im Quellcode. Suche in einem Baum Allgemeine Java-Themen 3
R Daten aus Baum entsprechend in jTree einfuegen Allgemeine Java-Themen 2
C Daten möglichst schnell einem Baum zuordnen Allgemeine Java-Themen 2
S Datenstruktur für einen Baum Allgemeine Java-Themen 5
N Baum aus Datei laden. Allgemeine Java-Themen 3
A Java Programm verbessern/vereinfachen Allgemeine Java-Themen 20
C Code vereinfachen Allgemeine Java-Themen 2
B Berechtigungsabfragen vereinfachen? Allgemeine Java-Themen 6
N Boolsche Algebra via eval vereinfachen -> Ausmultiplizieren gesucht Allgemeine Java-Themen 15
H args abfrage vereinfachen Allgemeine Java-Themen 7
M OOP Zusammenfassen / vereinfachen von get; set;? Allgemeine Java-Themen 35
O Kann man das verkürzen/vereinfachen? Allgemeine Java-Themen 7
G Code vereinfachen bei Reflection Allgemeine Java-Themen 4
F Code vereinfachen möglich? Allgemeine Java-Themen 18
M code vereinfachen Allgemeine Java-Themen 15
F 3 Zahlen "vereinfachen" Allgemeine Java-Themen 5
A Reguläre Ausdrücke vereinfachen Allgemeine Java-Themen 19

Ähnliche Java Themen

Neue Themen


Oben