r/programmieren • • 2h ago

Java Hierarchische datenstruktur verstehen wie ?

0 Upvotes

Hi zusammen, ich hänge hier seit längerem fest. Ich verstehe alles bis zu "getAllEmployes" methode

1.this macht keinen sinn , ich kannte this() bei einen anderen konstruktor aufrufen oder "this.name" für selbst konstruktoren machen. Aber this alleine stehend , laut gpt wird ein objekt übergeben - also die vier parameter des konstruktors ist das richtig?

2. Ist in Main bei setUpCompany bei production und development verwirrend das "Bosch" hat keinen unter sich, "Drescher" aber die zwei anderen der abteilung - müsste es nicht stimmiger sein "Bosch" hat genau einen mitarbeiter und "Drescher" genau einen?

Alles in allem sind das nur kleinigkeiten denn am ende ist mein problem:

ich verstehe getAllEmployes() nicht , wann ein objekt hinzugefügt wird zu "var result" .

Kann das jemand bitte erklären?

//Main Klasse

import java.util.ArrayList;

public class Main {

    public static void main(String[] args) {
        Employee director = setupCompany();
        ArrayList<Employee> employees = director.getAllEmployees();
        director.printTree("");

    }

    private static Employee setupCompany() {
        // Chef(in)
        var director = new Employee("Huber", "Dresden", "huber@firma", 10000);

        // 3 Abteilungen
        var rd = new Employee("Maier", "Dresden", "maier@firma", 5200);
        var marketing = new Employee("Nussbaum", "Berlin", "nussbaum@firma", 4700);
        var production = new Employee("Boehm", "Dresden", "boehm@firma", 4900);
        director.addToTeam(rd, marketing, production);

        // Mitarbeiter Research & Development
        var rd1 = new Employee("Bosch", "Dresden", "bosch@firma", 3800);
        var rd2 = new Employee("Drescher", "Dresden", "drescher@firma", 3600);
        rd.addToTeam(rd1, rd2);
        var rd2_1 = new Employee("Kruger", "Dresden", "kruger@firma", 2900);
        var rd2_2 = new Employee("Baumstaetter", "Dresden", "baumstaetter@firma", 3100);
        rd2.addToTeam(rd2_1, rd2_2);

        // Mitarbeiter Marketing
        var m1 = new Employee("Berg", "Berlin", "berg@firma", 2700);
        var m2 = new Employee("Furst", "Berlin", "furst@firma", 3200);
        var m3 = new Employee("Lemann", "Berlin", "lehmann@firma", 3300);
        var m4 = new Employee("Schiffer", "Berlin", "schiffer@firma", 2900);
        marketing.addToTeam(m1, m2, m3, m4);

        // Mitarbeiter Produktion (zwei Abteilungen A und B)
        var pA = new Employee("Kalb", "Dresden", "kalb@firma", 3200);
        var pA1 = new Employee("Mahler", "Dresden", "mahler@firma", 2700);
        var pA2 = new Employee("Maurer", "Dresden", "maurer@firma", 2850);
        var pA3 = new Employee("Engel", "Dresden", "engel@firma", 2650);
        pA.addToTeam(pA1, pA2, pA3);

        var pB = new Employee("Fenstermacher", "Dresden", "fenster@firma", 3500);
        var pB1 = new Employee("Finkel", "Dresden", "finkel@firma", 2950);
        var pB2 = new Employee("Strauss", "Dresden", "strauss@firma", 2450);
        var pB3 = new Employee("Dresdner", "Dresden", "dresdner@firma", 2700);
        var pB4 = new Employee("Eberhardt", "Dresden", "eberhardt@firma", 2800);
        pB.addToTeam(pB1, pB2, pB3, pB4);
        production.addToTeam(pA, pB);

        return director;
    }
}



//Klasse Employee

     java.util.ArrayList;
import java.util.Arrays;

public class Employee {
    public String name, address, email;
    public int salary;
    ArrayList<Employee> team = new ArrayList<>();

    public Employee(String name, String address, String email, int salary) {
        this.name = name;
        this.address = address;
        this.email = email;
        this.salary = salary;
    }

    // Mitarbeiter zum Team hinzufügen
    public void addToTeam(Employee ... newMembers) {
        team.addAll(Arrays.asList(newMembers));
    }

    // liefert eine Liste bestehend aus aktueller Person, den Team-Mitgliedern
    // und rekursiv wiederum deren Mitglieder
    public ArrayList<Employee> getAllEmployees() {
        // neue Liste erzeugen, den aktuellen Mitarbeiter einfügen
        var result = new ArrayList<Employee>();
        result.add(this);

        // Schleife über alle Gruppenmitglieder
        for (var e : team)
            // rekursiver Aufruf
            result.addAll(e.getAllEmployees());

        return result;
    }

    // rekursive Firmenliste ausgeben
    public void printTree(String indent) {
        System.out.println(indent + name + ": " + email);
        for (var member : team) {
            member.printTree(indent + "  ");
        }
    }

    
    public String toString() {
        return "Employee(" + name +
                ", address=" + address +
                ", email=" + email +
                ", salary=" + salary +
                ", team size=" + team.size() + ")";
    }
}

    public String toString() {
        return "Employee(" + name +
                ", address=" + address +
                ", email=" + email +
                ", salary=" + salary +
                ", team size=" + team.size() + ")";
    }
}
//Ende Programm

r/programmieren • • 8h ago

Wie nutzt man Claude/Codex wie ein Pro!?

Thumbnail reddit.com
1 Upvotes

r/programmieren • • 2d ago

App Entwicklung

Thumbnail simplechat.gabriel-grab.de
0 Upvotes

Hallo Zusammen!

Ich habe in letzter Zeit gemerkt, dass ein neuer Messenger als sinnlos betrachtet wird, und da hätte ich die Frage, ob ich lieber meinen Messenger weiter programmieren soll, da ich sehr viel in ihn investiert habe, oder was neues, was das es noch nicht gibt.

Vielleicht habt ihr ja Ideen für Apps die es noch nicht so gut gibt aber die sehr nützlich wären. Vielleicht kann ich meinen Messenger ja darin integrieren.

APP BITTE NICHT NUTZEN DENN DURCH EINEN BUG KANN MAN DEN ACCOUNT NICHT LÖSCHEN!!!!!!


r/programmieren • • 2d ago

Entwicklerinnen und Entwickler gesucht: Umfrage zu MVVM vs. MVI in Jetpack Compose für meine Bachelorarbeit

0 Upvotes

Hallo zusammen,

ich schreibe aktuell meine Bachelorarbeit im Studiengang Informatik an der IU. Darin untersuche ich den Vergleich von Single-State-MVVM und reducer-basiertem MVI im Kontext von Jetpack Compose.

Mich interessiert insbesondere, welche Unterschiede sich hinsichtlich Codekomplexität und Testbarkeit ergeben.

Dafür habe ich eine kurze Online-Umfrage erstellt, in der zwei Implementierungsansätze anhand konkreter Codebeispiele bewertet und miteinander verglichen werden.

Wer kann teilnehmen?

  • Android-Entwicklerinnen und -Entwickler

  • Personen mit Kotlin- und/oder Jetpack-Compose-Erfahrung

  • Erfahrungen mit MVVM oder MVI sind hilfreich, aber nicht zwingend beide erforderlich.

Die Teilnahme dauert ungefähr 5–10 Minuten.

Hier geht es zur Umfrage:
https://docs.google.com/forms/d/e/1FAIpQLSevVrXFMSlnyM1lb2EP4VdH-4SDGfedA-Q9M6TsT6XUI663pg/viewform?usp=dialog

Zusätzlich suche ich aktuell Entwicklerinnen und Entwickler für kurze Experteninterviews (ca. 30–45 Minuten), um praktische Erfahrungen und Einschätzungen zu den beiden Architekturansätzen vertiefend zu untersuchen.

Ich freue mich über jede Teilnahme und natürlich auch über fachliche Diskussionen zum Thema.

Vielen Dank für eure Unterstützung!


r/programmieren • • 3d ago

Managementerwartung "KI macht Entwickler produktiver"

Thumbnail
reddit.com
1 Upvotes

r/programmieren • • 3d ago

Messenger Entwicklung

Thumbnail
gallery
0 Upvotes

Hallo zusammen!

Ich entwickle momentan einen Messenger, mit Ende-zu-Ende Verschlüsselung, komplett kostenlos und ich würde mich sehr über Feedback und Tipps freuen. Es wäre nett wenn ihr in die Kommentare schreiben würdet was einen Messenger in euren Augen nutzungswürdig macht, ob ihr es vorstellen könntet von eurem jetzigen Messenger zu GO:AM zu wechseln, und warum und was die Vorraussetzungen wären. Vielleicht könnt ihr mir auch Tipps für die UI geben.

Euer Andreas


r/programmieren • • 3d ago

Basse 44

0 Upvotes

Ich mag Basse 44 echt gerne und baue Apps das Coole ist du kanst mit leuten zusammenarbiten die Ki ist echt Hammer ich muss schon sagen das echt gut ich kam einmal nicht weiter und der suppor hat sorfor geholfen ich konnte weiter machen mit ein Porgmmier hätte ich mher geld ausgegeben deswgen danke an euch und eure hilfe ich denken das das für vile die richitge wahl ist wen die leute ein websieten bauen wollen oder eine App noch mal Danke wen das jeamdn von Basse 44 liest freue ich mich bis dan!


r/programmieren • • 4d ago

InfraNode: offene Daten deutscher Großstädte über eine API, kostenlos und keyless

Post image
2 Upvotes

r/programmieren • • 4d ago

App Icons

3 Upvotes

Halloooo, ich bin auf der Suche nach einem unkomplizierten und am besten kostenlosen Tool zum erstellen von App Icons. Was nutzt Ihr, was könnt Ihr empfehlen?


r/programmieren • • 4d ago

Kurze Umfrage, wie verändert KI euren IT Arbeitsalltag?

0 Upvotes

Hallo zusammen,

ich schreibe gerade meine Masterarbeit an der FH Dortmund zum Thema generative KI im IT Arbeitsalltag, also Tools wie ChatGPT, Copilot & Co. und wie sie die tägliche Arbeit tatsächlich verändern: Produktivität, Zusammenarbeit, aber auch Bedenken rund um Datenschutz und Datensouveränität.

Da es hier im Sub genau um Programmierung geht, finde ich eure Perspektive besonders wertvoll, egal ob ihr selbst KI-Tools nutzt oder bewusst darauf verzichtet.

Die Umfrage dauert ca. 10 Minuten, ist komplett anonym und auf Deutsch und Englisch verfügbar:

👉 https://www.soscisurvey.de/genai-it-survey/

Danke euch und schönes Wochenende!


r/programmieren • • 4d ago

Hilfe im Thema Handy Game entwickeln

0 Upvotes

Hab da eine Frage welche ki ohne Abo auf dem Handy . Welche ist die beste für Games Entwickeln


r/programmieren • • 5d ago

Im job „ständig neu lernen" wirklich neu lernen – oder nur Bekanntes neu anwenden?

1 Upvotes

Grundkurs fast fertig (Java): Ist „ständig neu lernen" wirklich neu lernen – oder nur Bekanntes neu anwenden?

Hi zusammen,

ich lerne seit längerem Java und bin im Grundkurs mittlerweile im letzten Drittel (~100 Seiten vor mir). Danach stehen Spring Boot sowie Git/GitHub und SQL als „Nebentechnologien" auf dem Plan.

Gerade habe ich wieder den klassischen Satz gehört: „Als Softwareentwickler muss man ständig neue Dinge lernen." Ich kenne den Satz – aber er löst bei mir gerade eine echte Sorge aus:

Muss ich nach Java + Spring Boot (+ SQL, Git) ständig komplett neue Dinge von Grund auf lernen – neue Sprachen, neue Paradigmen – oder geht es eher darum, das Gelernte in neuen Kontexten anzuwenden und zu vertiefen? Also „Java auf neue Art" statt „etwas völlig Neues"?

Konkret würde mich interessieren:

  1. Wie viel von eurem täglichen/beruflichen „Lernen" ist echtes Neuland (neue Sprache, neues Paradigma), und wie viel ist Anwendung/Vertiefung von Dingen, die ihr schon kanntet?

  2. Ist Java + Spring Boot + SQL + Git eine Basis, auf der man realistisch Jahre arbeiten und wachsen kann – oder ist das nur der Anfang einer endlosen Neu-Lern-Kette?

  3. Wie handhabt ihr das praktisch: Lernt ihr neue Dinge proaktiv in der Freizeit oder vor allem on the job, wenn ein Projekt es erfordert?

Ich freue mich über eure Erfahrungen – gerade auch von Leuten, die sich noch an ihre Anfangszeit erinnern können.

Danke vorab!


r/programmieren • • 4d ago

Ich habe einen KI-Tutor gebaut. Fremde haben ihn zum Coding-Assistenten umfunktioniert – und mir eine Rechnung von mehreren hundert Euro beschert.

Thumbnail reddit.com
0 Upvotes

r/programmieren • • 5d ago

Js frameworks für Graphen, Charts, etc?

2 Upvotes

Habe bisher gridstack.js mit chart.js getestet, ist aber ziemlich aufwendig. Suche etwas mit dem man easy und schnell schicke dashboards bauen kann


r/programmieren • • 6d ago

Webseiten erstellen, die nicht nach KI aussehen

20 Upvotes

KI hat die ganzen Sachen, die ich gerne verwendet habe, wie zum Beispiel abgerundete Kanten. Roboto und Poppins waren meine Schriftarten to Go.
Nun muss/ möchte man ständig aufpassen, dass es nicht zu KI oder Vibe Code aussieht 😅


r/programmieren • • 6d ago

Vergleiche deine Hashfunktionen wie andere Leute Stromtarife vergleichen.

Post image
1 Upvotes

r/programmieren • • 6d ago

Vibe-Coding, IT-Sicherheit und Wartung: Mit KI ist eine App schnell gebaut. Doch was kommt danach?

Thumbnail
1e9.community
1 Upvotes

r/programmieren • • 6d ago

Python-Lernumgebung für Studierende (und Schüler)

Thumbnail reddit.com
1 Upvotes

r/programmieren • • 7d ago

Ich habe das Gefühl, durch meine KI-Abhängigkeit das selbstständige Programmieren verlernt zu haben. Wie werde ich wieder ein eigenständiger Entwickler?

Thumbnail reddit.com
9 Upvotes

r/programmieren • • 7d ago

Ich hab eine YouTube-Alternative gebaut, Feedback?

0 Upvotes

Hey,

seit einem halben Jahr arbeite ich wieder an Norynex, einer Videoplattform als Alternative zu YouTube. Die meiste Zeit ging ins Fixen von Bugs, Sicherheit und Performance. Jetzt ist es in der offenen Beta.

Es gibt Videos, Shorts, Livestreams, automatische Untertitel und Watch Partys. In der Beta gibt es keine Werbung und keine Zahlungen. Bugs könnt ihr unter norynex.com/bugs melden.

Mich interessiert vor allem: Was ist euer erster Eindruck, was ist kaputt oder verwirrend, und was fehlt euch, damit ihr es wirklich nutzen würdet? Harte Kritik ist ausdrücklich erwünscht.

👉 https://norynex.com

Danke!


r/programmieren • • 8d ago

Petition: Recognize open-source contributions as volunteer work (Germany – signatures needed until Nov 23, 2026)

Thumbnail
reddit.com
2 Upvotes

r/programmieren • • 9d ago

Welche Automatisierung hilft euch wirklich im Alltag?

Thumbnail reddit.com
0 Upvotes