Modellieren eines Buchungssystems für Busfahrkarten

@xImJugo
Wie wäre es mit:
Java:
void removeVehicle(Vehicle v)
{
    if(this.vehicleList.contains(v))
    {
        this.vehicleList.remove(v);
    }
}
oder...
Java:
void removeVehicle(Vehicle v)
{
    int toRemove = this.vehicleList.indexOf(v);
    this.vehicleList.remove(this.vehicleList.getI(toRemove));
}
Dabei wird jedes Fahrzeug Anhand Hash identifiziert.
Danke für die Hilfe, aber der remove Befehl war jetzt nicht wirklich das Problem. Auch der print Befehl für die Buslinien, der alle Buslinien ,die in der ArrayList gespeichert sind, ausgeben soll , habe ich mehr oder weniger . Nur habe ich da das Problem, dass ich wirklich keine Ahnung habe, wie ich die Buslinien nach ihrer Busnummer aufsteigend sortieren kann. Also eine Buslinie (int busnumber, String start, string goal, ....) soll nach der Busnumber im Konstruktor aufsteigend sortiert werden.

2. Problem hab ich jetzt beim book Befehl (siehe oben Aufgabenstellung )

Mit dem Befehl kann ein Kunde ein Busticket buchen. Jeder erfolgreichen Buchung wird eine neuen
Rechnungsnummer zugewiesen. Auch wird mit jeder erfolgreichen Buchung ein neuer Kunde mit
einer eindeutigen Kundennummer angelegt, es sei denn ein Kunde mit dem gleichen Namen hat
bereits früher eine Bestellung getätigt.

Eingabeformat book <Busnummer >;< Vorname >;< Nachname >

Ausgabeformat <Rechnungsnummer >;< Kundennummer >
Im Erfolgsfall werden die zugehörige Rechnungs- und Kundennummern angezeigt. Rechnungsnummern
für die mittels remove-Befehl gelöschten Buslinien werden nicht mit ausgegeben und auch
nicht wiederverwendet

Java:
public void book1(int busnumber, String prename, String postname) {
        for (int i = 0; i < busline.size(); i++) {
            if (busline.get(i).getBusNumber() == busnumber) { // Überprüfen ob die Buslinie existiert
                costumer.add(new Costumer(prename, postname)); // Wenn ja wird ein neuer Costumer erstellt
                createBillNumber();                             // mit neuer Rechnungsnummer
                for ( i = 0; i < costumer.size(); i++) {
                    int b = costumer.get(i).getCostumerNumber();
                    String s = String.format("%s;%s<Kundennummer>", billNumber, b);
                    System.out.println(s);
                }
            }
        }
    }
Ausgabe sollte Rechnungsnummer mit entsprechender Kundennummer des Kunden sein, aber das Problem ist, dass ich nicht direkt auf die Kundennummer zugreifen kann, da die in der Klasse des Costumer steckt. Welche Möglichkeiten habe ich? Ich hatte bisher an eine neue Klasse Buchung gedacht (die wäre für den vorletzten Befehl print Buchungen auch sinnvoll) oder ich packe die Kundennummer mit der Methode zum erstellen der Kundennummer, ähnlich wie bei der Rechnungsnummer in die Booking System Klasse? So wie ich es in meinem Code habe, greif ich zwar auf die Kundennummer zu, aber sie wird zu oft geprinted
 
Danke für die Hilfe, aber der remove Befehl war jetzt nicht wirklich das Problem. Auch der print Befehl für die Buslinien, der alle Buslinien ,die in der ArrayList gespeichert sind, ausgeben soll , habe ich mehr oder weniger . Nur habe ich da das Problem, dass ich wirklich keine Ahnung habe, wie ich die Buslinien nach ihrer Busnummer aufsteigend sortieren kann. Also eine Buslinie (int busnumber, String start, string goal, ....) soll nach der Busnumber im Konstruktor aufsteigend sortiert werden.

2. Problem hab ich jetzt beim book Befehl (siehe oben Aufgabenstellung )

Mit dem Befehl kann ein Kunde ein Busticket buchen. Jeder erfolgreichen Buchung wird eine neuen
Rechnungsnummer zugewiesen. Auch wird mit jeder erfolgreichen Buchung ein neuer Kunde mit
einer eindeutigen Kundennummer angelegt, es sei denn ein Kunde mit dem gleichen Namen hat
bereits früher eine Bestellung getätigt.

Eingabeformat book <Busnummer >;< Vorname >;< Nachname >

Ausgabeformat <Rechnungsnummer >;< Kundennummer >
Im Erfolgsfall werden die zugehörige Rechnungs- und Kundennummern angezeigt. Rechnungsnummern
für die mittels remove-Befehl gelöschten Buslinien werden nicht mit ausgegeben und auch
nicht wiederverwendet

Java:
public void book1(int busnumber, String prename, String postname) {
        for (int i = 0; i < busline.size(); i++) {
            if (busline.get(i).getBusNumber() == busnumber) { // Überprüfen ob die Buslinie existiert
                costumer.add(new Costumer(prename, postname)); // Wenn ja wird ein neuer Costumer erstellt
                createBillNumber();                             // mit neuer Rechnungsnummer
                for ( i = 0; i < costumer.size(); i++) {
                    int b = costumer.get(i).getCostumerNumber();
                    String s = String.format("%s;%s<Kundennummer>", billNumber, b);
                    System.out.println(s);
                }
            }
        }
    }
Ausgabe sollte Rechnungsnummer mit entsprechender Kundennummer des Kunden sein, aber das Problem ist, dass ich nicht direkt auf die Kundennummer zugreifen kann, da die in der Klasse des Costumer steckt. Welche Möglichkeiten habe ich? Ich hatte bisher an eine neue Klasse Buchung gedacht (die wäre für den vorletzten Befehl print Buchungen auch sinnvoll) oder ich packe die Kundennummer mit der Methode zum erstellen der Kundennummer, ähnlich wie bei der Rechnungsnummer in die Booking System Klasse? So wie ich es in meinem Code habe, greif ich zwar auf die Kundennummer zu, aber sie wird zu oft geprinted
Also zu 2. Problem :
Wenn ich die Kundennummer ins BookingSystem packe, funktioniert es schon mal einfacher, aber ich weiß nicht wie gut es für meine allgemeine Modellierung ist, da normaIerweise die Kundennummer ja zum Kunden selbst gehört
 
Also zu 2. Problem :
Wenn ich die Kundennummer ins BookingSystem packe, funktioniert es schon mal einfacher, aber ich weiß nicht wie gut es für meine allgemeine Modellierung ist, da normaIerweise die Kundennummer ja zum Kunden selbst gehört
und jetzt fehlt mir immernoch die Überprüfung, ob ein Kunde mit dem gleichen Namen eine Buchung durchführt. In dem Fall, dass es so ist, soll ja keine neue Kundennummer erstellt werden
 
Nur habe ich da das Problem, dass ich wirklich keine Ahnung habe, wie ich die Buslinien nach ihrer Busnummer aufsteigend sortieren kann
Coparator<Object>, Comparable<Object>, Collections
Java:
public class HowToSortByRequirementDemo
{

 
    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner scanner = new Scanner(new File("woman.txt"));
        List<String> list = new ArrayList<>();
        while(scanner.hasNextLine())
        {
            list.add(scanner.nextLine());
        }
       
       
        List<Being> beingList = new ArrayList<>();
        Random random = new Random();
        int width = 1000;
        int arm;
        int leg;
        int eye;
        int indexForName;
        String name;
        int loop = 100;
        while(loop > 0)
        {
            arm = random.nextInt(width);
            leg = random.nextInt(width);
            eye = random.nextInt(width);
            indexForName = random.nextInt(list.size());
            name = list.get(indexForName);
            beingList.add(new Being(arm, leg, eye, name));
            loop--;
        }
       
        Collections.sort(beingList, new CompareByArm());
        pring(beingList);
        System.out.println(" - - - - - - - - - - - ");
        Collections.sort(beingList, new CompareByLeg());
        pring(beingList);
        System.out.println(" - - - - - - - - - - - ");
        Collections.sort(beingList, new CompareByEye());
        pring(beingList);
       
    }
   
    public static void pring(List<Being> list)
    {
        list.forEach((b) ->
        {
            System.out.println(String.format(Locale.GERMAN, "Arm: %d, Leg: %d, Eye: %d, Name: %s%n", b.getArm(), b.getLeg(), b.getEye(), b.getName()));
        });
    }
   
}

public class Being
{

    private final int arm;
    private final int leg;
    private final int eye;
    private final String name;

    public Being(int arm, int leg, int eye, String name)
    {
        this.arm = arm;
        this.leg = leg;
        this.eye = eye;
        this.name = name;
    }

    public int getArm()
    {
        return arm;
    }

    public int getLeg()
    {
        return leg;
    }

    public int getEye()
    {
        return eye;
    }

    public String getName()
    {
        return name;
    }

}

public class CompareByArm implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getArm(), o2.getArm());
    }

}

public class CompareByEye implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getEye(), o2.getEye());
    }

}

public class CompareByLeg implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getLeg(), o2.getLeg());
    }
}

/** Output */
Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 412, Leg: 118, Eye: 968, Name: Nancy

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

- - - - - - - - - - -
Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 412, Leg: 118, Eye: 968, Name: Nancy

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

- - - - - - - - - - -
Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 412, Leg: 118, Eye: 968, Name: Nancy

und jetzt fehlt mir immernoch die Überprüfung, ob ein Kunde mit dem gleichen Namen eine Buchung durchführt. In dem Fall, dass es so ist, soll ja keine neue Kundennummer erstellt werden
costumer.add(new Costumer(prename, postname)); Der Kostümier?!
Du hast doch eine List Customer, also prüfst du, ob der Kunde bereits vorhanden ist und erhöhst den jeweiligen Wert oder summierst neu entstandenen Kosten dazu usw.
 
Zuletzt bearbeitet:
Coparator<Object>, Comparable<Object>, Collections
Java:
public class HowToSortByRequirementDemo
{


    public static void main(String[] args) throws FileNotFoundException
    {
        Scanner scanner = new Scanner(new File("woman.txt"));
        List<String> list = new ArrayList<>();
        while(scanner.hasNextLine())
        {
            list.add(scanner.nextLine());
        }
      
      
        List<Being> beingList = new ArrayList<>();
        Random random = new Random();
        int width = 1000;
        int arm;
        int leg;
        int eye;
        int indexForName;
        String name;
        int loop = 100;
        while(loop > 0)
        {
            arm = random.nextInt(width);
            leg = random.nextInt(width);
            eye = random.nextInt(width);
            indexForName = random.nextInt(list.size());
            name = list.get(indexForName);
            beingList.add(new Being(arm, leg, eye, name));
            loop--;
        }
      
        Collections.sort(beingList, new CompareByArm());
        pring(beingList);
        System.out.println(" - - - - - - - - - - - ");
        Collections.sort(beingList, new CompareByLeg());
        pring(beingList);
        System.out.println(" - - - - - - - - - - - ");
        Collections.sort(beingList, new CompareByEye());
        pring(beingList);
      
    }
  
    public static void pring(List<Being> list)
    {
        list.forEach((b) ->
        {
            System.out.println(String.format(Locale.GERMAN, "Arm: %d, Leg: %d, Eye: %d, Name: %s%n", b.getArm(), b.getLeg(), b.getEye(), b.getName()));
        });
    }
  
}

public class Being
{

    private final int arm;
    private final int leg;
    private final int eye;
    private final String name;

    public Being(int arm, int leg, int eye, String name)
    {
        this.arm = arm;
        this.leg = leg;
        this.eye = eye;
        this.name = name;
    }

    public int getArm()
    {
        return arm;
    }

    public int getLeg()
    {
        return leg;
    }

    public int getEye()
    {
        return eye;
    }

    public String getName()
    {
        return name;
    }

}

public class CompareByArm implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getArm(), o2.getArm());
    }

}

public class CompareByEye implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getEye(), o2.getEye());
    }

}

public class CompareByLeg implements Comparator<Being>
{

    @Override
    public int compare(Being o1, Being o2)
    {
        return Integer.compare(o1.getLeg(), o2.getLeg());
    }
}

/** Output */
Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 412, Leg: 118, Eye: 968, Name: Nancy

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

- - - - - - - - - - -
Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 412, Leg: 118, Eye: 968, Name: Nancy

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

- - - - - - - - - - -
Arm: 150, Leg: 110, Eye: 0, Name: Rose

Arm: 826, Leg: 671, Eye: 20, Name: Lucy

Arm: 411, Leg: 594, Eye: 21, Name: Maya

Arm: 269, Leg: 621, Eye: 21, Name: Willow

Arm: 820, Leg: 713, Eye: 39, Name: Victoria

Arm: 241, Leg: 45, Eye: 58, Name: Mia

Arm: 792, Leg: 324, Eye: 58, Name: Nancy

Arm: 930, Leg: 794, Eye: 88, Name: Charlotte

Arm: 537, Leg: 761, Eye: 109, Name: Grace

Arm: 347, Leg: 455, Eye: 123, Name: Aisha

Arm: 636, Leg: 398, Eye: 167, Name: Mia

Arm: 58, Leg: 797, Eye: 167, Name: Scarlett

Arm: 646, Leg: 582, Eye: 170, Name: Francesca

Arm: 602, Leg: 706, Eye: 176, Name: Violet

Arm: 372, Leg: 855, Eye: 180, Name: Lola

Arm: 926, Leg: 231, Eye: 184, Name: Isla

Arm: 176, Leg: 829, Eye: 203, Name: Freya

Arm: 223, Leg: 241, Eye: 207, Name: Ivy

Arm: 643, Leg: 198, Eye: 212, Name: Lily

Arm: 5, Leg: 394, Eye: 214, Name: Esme

Arm: 805, Leg: 888, Eye: 221, Name: Martha

Arm: 321, Leg: 237, Eye: 229, Name: Emily

Arm: 528, Leg: 925, Eye: 231, Name: Daisy

Arm: 20, Leg: 498, Eye: 238, Name: Eliza

Arm: 187, Leg: 769, Eye: 268, Name: Ruby

Arm: 271, Leg: 563, Eye: 282, Name: Darcy

Arm: 385, Leg: 756, Eye: 294, Name: Gracie

Arm: 1, Leg: 845, Eye: 309, Name: Luna

Arm: 721, Leg: 595, Eye: 319, Name: Isabelle

Arm: 566, Leg: 153, Eye: 324, Name: Georgia

Arm: 90, Leg: 547, Eye: 325, Name: Darcy

Arm: 61, Leg: 742, Eye: 335, Name: Ella

Arm: 680, Leg: 305, Eye: 338, Name: Bella

Arm: 661, Leg: 279, Eye: 345, Name: Julia

Arm: 934, Leg: 971, Eye: 359, Name: Eva

Arm: 779, Leg: 163, Eye: 363, Name: Gracie

Arm: 475, Leg: 749, Eye: 363, Name: Sophie

Arm: 6, Leg: 472, Eye: 383, Name: Rose

Arm: 383, Leg: 642, Eye: 389, Name: Rose

Arm: 723, Leg: 632, Eye: 395, Name: Ivy

Arm: 3, Leg: 536, Eye: 403, Name: Lily

Arm: 934, Leg: 263, Eye: 419, Name: Emily

Arm: 20, Leg: 987, Eye: 419, Name: Isabelle

Arm: 678, Leg: 144, Eye: 436, Name: Sophie

Arm: 555, Leg: 135, Eye: 439, Name: Holly

Arm: 356, Leg: 561, Eye: 442, Name: Mila

Arm: 540, Leg: 442, Eye: 447, Name: Francesca

Arm: 843, Leg: 450, Eye: 447, Name: Ivy

Arm: 47, Leg: 882, Eye: 456, Name: Annabelle

Arm: 82, Leg: 961, Eye: 457, Name: Aria

Arm: 445, Leg: 203, Eye: 468, Name: Sofia

Arm: 264, Leg: 229, Eye: 468, Name: Molly

Arm: 248, Leg: 363, Eye: 470, Name: Maddison

Arm: 24, Leg: 887, Eye: 490, Name: Harper

Arm: 527, Leg: 281, Eye: 502, Name: Harper

Arm: 134, Leg: 389, Eye: 508, Name: Isla

Arm: 174, Leg: 439, Eye: 523, Name: Emilia

Arm: 660, Leg: 25, Eye: 524, Name: Annabelle

Arm: 671, Leg: 641, Eye: 531, Name: Thea

Arm: 987, Leg: 668, Eye: 535, Name: Hannah

Arm: 492, Leg: 824, Eye: 540, Name: Willow

Arm: 88, Leg: 633, Eye: 572, Name: Poppy

Arm: 276, Leg: 341, Eye: 591, Name: Layla

Arm: 247, Leg: 622, Eye: 615, Name: Florence

Arm: 778, Leg: 823, Eye: 619, Name: Sophia

Arm: 798, Leg: 75, Eye: 622, Name: Florence

Arm: 935, Leg: 226, Eye: 629, Name: Sienna

Arm: 356, Leg: 303, Eye: 637, Name: Erin

Arm: 938, Leg: 905, Eye: 642, Name: Luna

Arm: 4, Leg: 563, Eye: 656, Name: Scarlett

Arm: 857, Leg: 202, Eye: 691, Name: Felicity

Arm: 664, Leg: 789, Eye: 696, Name: Ellie

Arm: 95, Leg: 978, Eye: 697, Name: Darcy

Arm: 215, Leg: 744, Eye: 698, Name: Alice

Arm: 147, Leg: 486, Eye: 703, Name: Megan

Arm: 849, Leg: 630, Eye: 712, Name: Emilia

Arm: 660, Leg: 772, Eye: 726, Name: Luna

Arm: 529, Leg: 16, Eye: 727, Name: Harriet

Arm: 867, Leg: 808, Eye: 735, Name: Sara

Arm: 389, Leg: 164, Eye: 754, Name: Phoebe

Arm: 511, Leg: 768, Eye: 785, Name: Freya

Arm: 563, Leg: 570, Eye: 787, Name: Jessica

Arm: 596, Leg: 144, Eye: 792, Name: Zara

Arm: 864, Leg: 60, Eye: 800, Name: Emily

Arm: 662, Leg: 566, Eye: 805, Name: Lilly

Arm: 437, Leg: 29, Eye: 809, Name: Lucy

Arm: 468, Leg: 407, Eye: 820, Name: Maisie

Arm: 581, Leg: 410, Eye: 820, Name: Violet

Arm: 473, Leg: 684, Eye: 830, Name: Lucy

Arm: 577, Leg: 709, Eye: 852, Name: Darcy

Arm: 105, Leg: 904, Eye: 860, Name: Arabella

Arm: 374, Leg: 415, Eye: 867, Name: Maria

Arm: 348, Leg: 602, Eye: 881, Name: Jessica

Arm: 24, Leg: 557, Eye: 883, Name: Jessica

Arm: 779, Leg: 678, Eye: 891, Name: Charlotte

Arm: 966, Leg: 913, Eye: 892, Name: Maya

Arm: 343, Leg: 300, Eye: 914, Name: Florence

Arm: 188, Leg: 120, Eye: 953, Name: Esme

Arm: 243, Leg: 512, Eye: 964, Name: Lily

Arm: 412, Leg: 118, Eye: 968, Name: Nancy


costumer.add(new Costumer(prename, postname)); Der Kostümier?!
Du hast doch eine List Customer, also prüfst du, ob der Kunde bereits vorhanden ist und erhöhst den jeweiligen Wert oder summierst neu entstandenen Kosten dazu usw.
Okey danke, das Sortieren problem hat sich geklärt. Mein Fehler war, dass ich den Comparator nicht richtig erstellt habe für meine Anwendung.

Aber zum Thema book Befehl verzweifle ich immernoch . Das hab ich bisher :
Java:
public void book(int busnumber, String prename, String postname) {
        for (int i = 0; i < busline.size(); i++) {
            if (busline.get(i).getBusNumber() == busnumber) {
                costumer.add(new Costumer(prename, postname));
                //Terminal.printLine("OK");
            }
        }
        for (int i = 0; i < costumer.size(); i++) {
            String s = String.format("%s;%s", costumer.get(i).getBillNumber(), costumer.get(i).getCostumerNumber());
            Terminal.printLine(s);
        }
    }
Bis zum Code, wo die BusLinie bzw Busnummer überprüft wird ist ja alles schön und gut. Wenn es eine Buslinie mit entsprechender Busnummer gibt, wird wie im Code zu sehen ein costumer erstellt. Im Konstruktor des costumers selbst hab ich 2 methoden zusätzlich noch drinnen, die automatisch eine Kundennummer und Rechnungsnummer erstellen(Ist das sinnvoll?). Aufjeden Fall wenn es die Buslinie gibt, wird ein Costumer erstellt aber es soll noch die entsprechende Rechnungsnummer und Kundennummer im Format <Rechnungsnummer>;<Kundennummer> ausgegeben werden, wenn die book methode aufgerufen wird. Wieso doppelt sich bei mir die Ausgabe immer oder was muss ich ändern ?
Ausgabe (bei 3 Buchungen) sieht so aus bei mir :
1;1
1;1
2;2
1;1
2;2
3;3
 
Äh, bei der ersten Buchung wird mit Deiner Schleife ein Kunde und eine Rechnungsnummer ausgegeben. Bei der zweiten Buchung sind bereits zwei Kunden und zwei Rechnungsnummern vorhanden. Bei der dritten Buchung werden drei Kunden und drei Rechnungsnummern ausgegeben. Macht insgesamt: 1 + 2 + 3 = 6 Zeilen.
 
Ich will dir nicht auf den Schlips treten, aber ein richtiges Englisch wäre schon angebracht ;)
https://dict.leo.org/englisch-deutsch/vorname
https://dict.leo.org/englisch-deutsch/nachname
Das ist halt Englisch for Runaways (würde Otto Waalkes sagen).

Ansonsten zur Sache:
Aus meiner Sicht ist das wieder ein typischer Fall von zu hoher Komplexität. Wenn etwas so viel zu komplex wird, dann nutze Teile und Herrsche: Unterteile ein Problem so lange, bis die Teile für Dich beherrschbar sind!

Hier könnte man ganz konkret sagen: Schreibe z.B. kleine Methoden, die gezielt gewisse Dinge machen. Also so Dinge wie:
- gibt es einen Kunden schon?
- Kunden heraussuchen
- Kunden hinzufügen
- ...

Dann wird der Code hinterher extrem übersichtlich und gut lesbar. Und Du hast nur ganz kleine, einfache Methoden zu verstehen.
 
Das größte Problem, dass ich habe ist die Modellierung selbst von dem ganzen System. Normalerweise (ohne ArrayList als Basis zum Speichern) hat sich das Modellieren immer ziemlich ergeben, denn ich hätte einfach nur meine paar Klassen mit Konstruktoren und ihren methoden und Attributen und würde diese den entsprechenden Klassen einfach "weitergeben", aber da ich jetzt die verschiedenen Elemente auch in der Liste speichern muss, versteh ich plötzlich gar nicht mehr.

Für diese Aufgabe bzw Modellierung bräuchte ich doch eigentlich erst mal eine Bus Klasse (nur mit Busnummer), ein Ticket (Preis und Rechnungsnummer) und eine Station Klasse ( beschreibt Start und Zielbahnhof) und daraus ergibt sich dann eine neue Klasse Buslinie (dass auf den Bus, ticket und station zugreifen muss), aber wie mach ich das bitte mit den Arraylist und wo werden die gespeichert. Zum Bsp ich hab einen neuen Bus und der wird in seiner BusArrayList gespeichert. In Welcher Klasse steht dann diese Liste und wie gebe ich diese Liste mit den Eigenschaften von Bus weiter an die Buslinie Klassen? Ich will quasi die ArrayList der jeweiligen Klassen weitergeben, damit am Ende das ganze Booking System die gleichen Liste und Listenelemente benutzt.

Zur Zeit habe ich meine Befehle und Aufgaben mehr oder weniger gelöst. Ich hab halt eine Bulinie klasse (mit konstruktor, der busnummer, start und zielbahnhof, preis, währung) entgegenimmt, aber hier sieht man schonmal, dass es in dem Sinne keine gute Modellierung ist, da ich keinen Bus zum Bsp als eigene Klasse habe und eben keine BusListe. Meine 2. Klasse ist die Kundenklasse (konstruktor mit namen und erstellt automatisch eine neue Rechnungsnummer(immer um 1 erhöht), wenn ein neuer Kunde generiert wird. Hier habe ich es irgendwie geschafft, dass ich im Konstruktor die Liste mitgebe für meine 3. Klasse Buchung ( konstruktor nimmt name, busnummer entgegen und erzeugt im Konstruktor die Rechnungsnummer und einen neuen Kunden(mit dem kundenklasse konstruktor), der in die KundenArraylist gespeichert wird, welche sich auch in der BookingKlasse befindet. Meine letzte Klasse ist sozusagen eine Manager Klasse und heißt halt BookingSystem und hier drinn habe ich die BookingListe und BuslinienListe und alle Methoden der Aufgabe. Könnt ihr mir sagen, was ihr davon haltet und was ich ändern sollte?
 
Für diese Aufgabe bzw Modellierung bräuchte ich doch eigentlich erst mal eine Bus Klasse (nur mit Busnummer), ein Ticket (Preis und Rechnungsnummer) und eine Station Klasse ( beschreibt Start und Zielbahnhof) und daraus ergibt sich dann eine neue Klasse Buslinie (dass auf den Bus, ticket und station zugreifen muss), aber wie mach ich das bitte mit den Arraylist und wo werden die gespeichert.
Nein eben nicht, dass ist das, was mich bei deiner Aufgabe auch erst irritiert hat. Vergiss den Einleitungstext. Du kannst sicherlich Bus und Zielbahnhof Klassen erstellen, brauchen tust du sie aber nicht unbedingt. Ihre Identifier können auch einfach Attribute in referenzierenden Klassen sein.

Und ich habe das schon mehrmals gesagt, der Preis gehört in dieser Aufgabe nicht in das Ticket, der Preis gehört in die Route! Stell es dir am RL-Beispiel Flixbus vor. Das ist das Modell von dem wir reden. Der Kunde bucht eine Fahrt. Das Ticket bestimmt nicht den Preis, sondern die Verbindung bestimmt den Preis, welches lediglich durch das Ticket berechtigt wird. Die Verbindung ist eine Relation im Ticket, genauso wie der Kunde.

Du brauchst minimal wirklich nur diese 4 Klassen und die Attribute (wie auch immer du sie im Code benennst):
Verbindung(Busnummer, Start, Ziel, Preis, Währung)
Ticket(Rechnungsnummer, Relation Verbindung, Relation Kunde)
Kunde(Kundennummer, Vorname, Nachname)
Manager(Liste von Verbindungen, Liste von Tickets, optional Liste von Kunden)

Hier habe ich es irgendwie geschafft, dass ich im Konstruktor die Liste mitgebe
Du musst uns zuhören. Die Vorgehensweise haben wir auch schon erklärt. Das ist kein Hexenwerk sondern einfach nur ein statischer Wert.

Java:
public class Customer {
    private static int CUSTOMERNUMBER = 0;

    private int customernumber;
    private String firstname;
    private String lastname;

    public Customer(String firstname, String lastname) {
        this.customernumber = ++CUSTOMERNUMBER;
        this.firstname = firstname;
        this.lastname = lastname;
    }
}
 
Zuletzt bearbeitet:
Die Gleiche Vorgehensweise mit dem statischen Wert hast du auch bei den Tickets, d.h. Rechnungsnummer gibst du nicht mit in den Konstruktor, sondern nur die Relationen. Genau diese brauchst du also, bevor zu die Rechnung erstellen kannst.

Nimm dir erst die Relation Verbindung vor. Bei dem book-Befehl bekommst du die Busnummer. Suche die Verbindung mit dieser Busnummer. Falls es keine gibt ist das eine Fehlermeldung wert. Hast du die Verbindung suchst du den Kunden. Dafür iterierst du über die Kundenliste. Alternativ kannst du aber auch die Kunden über die Ticket-Liste scannen. Falls du keinen Kunden findest mit dem Namen, dann erstellst du einen. Dann nimmst du die Verbindung und den gefundenen bzw. erstellten Kunden und erstellst mit diesen beiden Objekten das Ticket. Fertig (abgesehen von Ausgaben und Fehlerhandling natürlich).

Rein theoretisch könntest du die Relationen auch auf der gegenüberliegenden Seite definieren, d.h. eine Verbindung könnte auch eine Liste von ihr zugeordneter Tickets führen und der Kunde könnte eine Liste von gekauften Tickets führen. Daher wird in einem ERM-Diagram nie angegeben auf welcher Seite die Relation gespeichert ist. Es wird jedoch empfohlen immer die Relation auf der Seite zu speichern, die nicht die Liste benötigt. Diese Modellierung ist vorallem für relationale Datenbanken geeignet.
 
Zuletzt bearbeitet:
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben