Java - Enums

Karlter

Mitglied
Java:
public enum Direction {

    NORTH, SOUTH, EAST, WEST;

        public Direction opposite () {
            switch (this) {
                case NORTH:
                    return SOUTH;
                case SOUTH:
                    return NORTH;
                case EAST:
                    return WEST;
                case WEST:
                    return EAST;
                default:
                    return null;
            }
        }
    }


public class MzeSlv {

    public static SolutionStep findExit(Room currentRoom) {
        if (currentRoom.isExit()) {
            return new SolutionStep(null, null);
        }


        currentRoom.markVisited();

        for (Direction direction : Direction.values()) {
            Room nextRoom = currentRoom.getRoom(direction);
            if (nextRoom != null && !nextRoom.isVisited()) {
                SolutionStep result = findExit(nextRoom);
                if (result != null) {
                    return new SolutionStep(direction, result);
                }
            }
        }

        return null;
    }
}


public class Room {

    private final Room[] rooms = new Room[4];
    private boolean exit;
    private boolean visited = false;

    public Room(Room north, Room east, Room south, Room west, boolean exit) {
        this.exit = exit;
        rooms[Direction.NORTH.ordinal()] = north;
        rooms[Direction.EAST.ordinal()] = east;
        rooms[Direction.SOUTH.ordinal()] = south;
        rooms[Direction.WEST.ordinal()] = west;

        if (north != null) {
            assert north.rooms[Direction.SOUTH.ordinal()] == null;
            north.rooms[Direction.SOUTH.ordinal()] = this;
        }
        if (east != null) {
            assert east.rooms[Direction.WEST.ordinal()] == null;
            east.rooms[Direction.WEST.ordinal()] = this;
        }
        if (south != null) {
            assert south.rooms[Direction.NORTH.ordinal()] == null;
            south.rooms[Direction.NORTH.ordinal()] = this;
        }
        if (west != null) {
            assert west.rooms[Direction.EAST.ordinal()] == null;
            west.rooms[Direction.EAST.ordinal()] = this;
        }
    }

    public Room getRoom(Direction d) {
        return rooms[d.ordinal()];
    }

    public boolean isExit() {
        return exit;
    }

    public void markVisited() {
        this.visited = true;
    }

    public boolean isVisited() {
        return visited;
    }
}


public class SolutionStep {
    private final Direction direction;
    private final SolutionStep next;

    public SolutionStep(Direction direction, SolutionStep next) {
        this.direction = direction;
        this.next = next;
    }

    public SolutionStep next() {
        return next;
    }

    public Direction getDirection() {
        return direction;
    }


}

In dieser Aufgabe sollen Sie sich mit Enum befassen und Enum#ordinal() verwenden.

Schreiben Sie dazu ein Programm, das den Weg durch einen Irrgarten findet.

Das Enum Direction definiert Konstanten für die vier Richtungen (Direction.NORTH, Direction.EAST, Direction.SOUTH und Direction.WEST). Zusätzlich gibt es eine Methode Direction#opposite() die die gegensätzliche Richtung zurück gibt. (NORTH ↔↔ SOUTH bzw. EAST ↔↔ WEST).

Der Irrgarten wird durch eine Klasse Room repräsentiert, welcher bis zu vier Verbindungen zu anderen Räumen hat. Room hat einen Konstruktor Room(Room north, Room east, Room south, Room west, boolean exit). Dieser erzeugt einen neuen Raum mit angrenzenden Räumen in die Richtungen Direction.NORTH, Direction.EAST, Direction.SOUTH und Direction.WEST. null wird für (noch) keinen Raum verwendet. Nutzen Sie Enum#ordinal() von Direction um die Räume in einem Array (rooms) zu halten. Die übergebenen Räume werden so aktualisiert, dass am Ende des Konstruktoraufruf der Weg zurück wieder zu diesem Raum führt. Z.B. muss dieser Raum im Süden von dem Raum sein, der als north übergeben wurde. Stellen Sie mit assert sicher, das beim Aktualisieren keine vorhandenen Verbindungen überschrieben werden. Der boolean gibt an, ob der Raum ein Ausgang ist. Mit der Methode Room getRoom(Direction d) wird der Raum zurückgegeben, der in die angegebene Richtung liegt; sonst null. Die Methode boolean isExit() gibt zurück, ob der Raum ein Ausgang ist.

Die Funktion SolutionStep findExit(Room currentRoom) in MazeSolver bestimmt einen Weg aus dem Irrgarten heraus. Das Ergebnis wird in einzelnen Schritten angegeben. SolutionStep hat zwei Methoden (Direction getDirection() und SolutionStep next()) und wird wie folgt interpretiert: Wenn getDirection() null zurückgibt, ist der aktuelle Raum der Ausgang. Ansonsten ist dort angegebenen, in welche Richtung der aktuelle Raum verlassen werden muss. next() beinhaltet dann die Anweisung für den nächsten Raum. Beginn der Lösung ist in start. Z.B: Rückgabe (direction=null, next=null) heißt, der Startraum ist ein Ausgang. Rückgabe (direction=WEST, next=(direction=NORTH, next=(direction=null, next=null))) heißt, nach Westen, nach Norden und dort ist der Ausgang. Gibt es gar keinen Ausweg, wird null zurückgegeben. Jeder Irrgarten wird nur ein einziges mal gelöst.


Eventuell hat ja jemand Zeit und Lust sich hier mal einzulesen und mir gegebenenfalls einen Hinweis zu geben, wo hier noch Probleme auftreten könnten. In den vorgegebenen Testfällen sagt er mir, dass folgende Probleme auftreten:

Testfall · constructor_getRoomReturnsSameRoomAsPassed fehlgeschlagen​

Multiple Failures (2 failures) org.opentest4j.AssertionFailedError: Roome east was not found. org.opentest4j.AssertionFailedError: Roome south was not found.

Testfall · opposite fehlgeschlagen​

The opposite directions are checked. (4 failures) org.opentest4j.AssertionFailedError: south is opposite north org.opentest4j.AssertionFailedError: west is opposite east org.opentest4j.AssertionFailedError: north is opposite south org.opentest4j.AssertionFailedError: east is opposite west

Testfall · findExit_mazeSmall fehlgeschlagen​

expected: <Room@58d6cbe0> but was: <null>

Testfall · findExit_mazeManyExits fehlgeschlagen​

expected: <Room@51432332> but was: <Room@557cbdc2>

Testfall · findExit_mazeManyExits_endOnFirstExit fehlgeschlagen​

expected: <Room@4873b41> but was: <Room@216c8b5a>

Testfall · findExit_labyrinth fehlgeschlagen​

expected: <SOUTH> but was: <EAST>



Danke für Eure Mühe und Zeit!
 
Zuletzt bearbeitet:

richtig

Mitglied
Was kriege ich dafür wenn ich mich durch die Wall of text hangele? 👿

Ich glaube, dein Problem ist, dass du immer ordinal() aufrufst, anstatt einfach nur die Enum direkt zu verwenden. Dafür sind die Enums nicht gedacht.
 

LimDul

Top Contributor
Auf den ersten Blick sieht der Code grundsätzlich korrekt aus. Insbesondere der Failure bei opposite wundert mich, weil die Methode ist nun nicht wirklich komplex.

Evtl. mal probieren, ob du die Reihenfolge der Enum-Definition umstellst, anstelle von NORTH, SOUTH, EAST, WEST auf wie in der Aufgabe angegeben auf NORTH, EAST, SOUTH, WEST. Weil dadurch ändern sich die Ordinal Werte der Konstanten was mindestens auf die Reihenfolge, wie er durch das Labyrinth bei resolven läuft Einfluss hat. Und evtl. erwarten die Junit-Tests genau diese Ordinal Werte
 

LimDul

Top Contributor
PS: Sollte mein Vorschlag das lösen, ist das gleichzeitig ein gutes Beispiel warum das nutzen von #ordinal gefährlich sein kann - es ist von der Reihenfolge im Source-Code abhängig. Sobald man an dem Enum was ändert ändern sich die Werte, was damit z.B. gespeicherte Daten invalid machen kann.
 

Karlter

Mitglied
Erstmal vielen Dank für Eure antworten. Überraschenderweise hast du Recht @LimDul, ich habe sie getauscht und jetzt erreiche ich eine Korrektheit von 97% bei den Testen. Allerdings frage mich ob das so korrekt ist, denn in der Aufgabe steht ja eigentlich in welcher Reihenfolge das ganze implementiert werden soll.... Sind die JunitTests dann eventuell einfach falsch? Nun erhalte ich nur noch folgende Fehlermeldung:

estfall · findExit_challenge fehlgeschlagen​

Could not invoke the method 'findExit' in the class MazeSolver because of an exception within the method: java.lang.StackOverflowError
 

LimDul

Top Contributor
Erstmal vielen Dank für Eure antworten. Überraschenderweise hast du Recht @LimDul, ich habe sie getauscht und jetzt erreiche ich eine Korrektheit von 97% bei den Testen. Allerdings frage mich ob das so korrekt ist, denn in der Aufgabe steht ja eigentlich in welcher Reihenfolge das ganze implementiert werden soll.... Sind die JunitTests dann eventuell einfach falsch? Nun erhalte ich nur noch folgende Fehlermeldung:

estfall · findExit_challenge fehlgeschlagen​

Could not invoke the method 'findExit' in the class MazeSolver because of an exception within the method: java.lang.StackOverflowError
In der Aufgabenstellung steht ja die Reihenfolge so wie ich sie aufgeschrieben habe. Wie beschrieben - ein super Beispiel warum ordinal gefährlich ist zu verwenden. :)

Warum der Fehler auftritt - keine Ahnung, Ich vermute mal du kannst dir das Challenge Maze nicht ansehen um es lokal zu testen? Der Fehler besagt, dass du zu viele rekursive Aufrufe hast. Ich sehe da jetzt keinen Fehler in deinem Code, so dass ich vermute, dass das Challenge Maze ein Labyrinth der folgenden Form ist

Code:
-> -> -> -> -> -> -> -> -> -> v
v  <- <- <- <- <- <- <- <- <- <-
-> -> -> -> -> -> -> -> -> -> v
...
Spricht eine Schlange, die sich windet. Das führt dazu dass die Rekursion tiefer wird, als Java das speichern kann. Evtl. wird bei dem Test die Stack Size auch bewusst niedrig gesetzt.

Das heißt, wenn du das vermeiden willst, müsstest du von einer rekursiven auf eine Iterative Lösung umstellen. Das geht grundsätzlich, macht es aber aufwendiger. Insbesondere weil die rekursive Lösung aus meiner Sicht die naheliegende und am besten lesbare Lösung ist.
 

KonradN

Super-Moderator
Mitarbeiter
Evtl. zeigst Du uns die aktuelle Version. Ggf. hast Du mehr geändert als nur die Reihenfolge in der Enum.

Da das Ziel der Aufgabe sein soll, das ordinal von enum kennen zu lernen, halte ich es für unwahrscheinlich, dass da jetzt aus der rekursiven Lösung eine Iterative gebaut werden soll.
 

Karlter

Mitglied
Java:
public enum Direction {
    NORTH, EAST, SOUTH, WEST;

        public Direction opposite () {
            switch (this) {
                case NORTH:
                    return SOUTH;
                case SOUTH:
                    return NORTH;
                case EAST:
                    return WEST;
                case WEST:
                    return EAST;
                default:
                    return null;
            }
        }
    }

public class MazeSolver {

    public static SolutionStep findExit(Room currentRoom) {
        if (currentRoom.isExit()) {
            return new SolutionStep(null, null);
        }

        for (Direction direction : Direction.values()) {
            Room nextRoom = currentRoom.getRoom(direction);
            if (nextRoom != null && !nextRoom.isVisited()) {
                SolutionStep result = findExit(nextRoom);
                if (result != null) {
                    return new SolutionStep(direction, result);
                }
            }
        }
        return null;
    }
}

ublic class Room {

    private final Room[] rooms = new Room[4];
    private boolean exit;
    private boolean visited = false;

    public Room(Room north, Room east, Room south, Room west, boolean exit) {
        this.exit = exit;
        rooms[Direction.NORTH.ordinal()] = north;
        rooms[Direction.EAST.ordinal()] = east;
        rooms[Direction.SOUTH.ordinal()] = south;
        rooms[Direction.WEST.ordinal()] = west;

        if (north != null) {
            assert north.rooms[Direction.SOUTH.ordinal()] == null;
            north.rooms[Direction.SOUTH.ordinal()] = this;
        }
        if (east != null) {
            assert east.rooms[Direction.WEST.ordinal()] == null;
            east.rooms[Direction.WEST.ordinal()] = this;
        }
        if (south != null) {
            assert south.rooms[Direction.NORTH.ordinal()] == null;
            south.rooms[Direction.NORTH.ordinal()] = this;
        }
        if (west != null) {
            assert west.rooms[Direction.EAST.ordinal()] == null;
            west.rooms[Direction.EAST.ordinal()] = this;
        }
    }

    public Room getRoom(Direction d) {
        return rooms[d.ordinal()];
    }

    public boolean isExit() {
        return exit;
    }

    public void markVisited() {
        this.visited = true;
    }

    public boolean isVisited() {
        return visited;
    }
}

public class SolutionStep {
    private final Direction direction;
    private final SolutionStep next;

    public SolutionStep(Direction direction, SolutionStep next) {
        this.direction = direction;
        this.next = next;
    }

    public SolutionStep next() {
        return next;
    }

    public Direction getDirection() {
        return direction;
    }


}



Das ist jetzt der aktuelle Code, welcher ein Testergebnis von 97% erreicht. Ich habe also wirklich lediglich die Anordnung von den Enums verändert. Den einzigen Fehler, welchen ich noch erhalte ist ein java.lang.StackOverflowError. Das irritiert mich, da ich die rekursive Lösung auch für den optimaleren Lösungsweg halt und ich darüber hinaus doch die besuchten Räume mit visit kennzeichne...
 

Karlter

Mitglied
Danke für den Hinweis @KonradN, habe ich jetzt wieder eingefügt:

Java:
public class MazeSolver {

    public static SolutionStep findExit(Room currentRoom) {
        if (currentRoom.isExit()) {
            return new SolutionStep(null, null);
        }

        currentRoom.markVisited();

        for (Direction direction : Direction.values()) {
            Room nextRoom = currentRoom.getRoom(direction);
            if (nextRoom != null && !nextRoom.isVisited()) {
                SolutionStep result = findExit(nextRoom);
                if (result != null) {
                    return new SolutionStep(direction, result);
                }
            }
        }
        return null;
    }
}


Leider tritt die gleiche Fehlermeldung immer noch auf. Ich denke dann liegt es wohl an den vorgegebenen JunitTests (auf welche ich leider keinen lokalen Zugriff habe). Verstehe trotzdem nicht warum die Lösung dann anscheinend iterativ implementiert werden soll... Und wieso ich jetzt dennoch einen StackOverFlow erhalte.
 

LimDul

Top Contributor
Vorschlag meinerseits wäre da mit deinem Betreuer/Tutor zu sprechen. Aus meiner Sicht sehe ich da keinen echten Fehler. Und ich bin bei @KonradN - ich würde auch nicht verstehen, warum die Lösung jetzt zwangsweise iterativ bauen muss.
 

KonradN

Super-Moderator
Mitarbeiter
Sicher, dass du die Version mit dem markVisited testest? Denn du hattest ja dieses Problem vorher nicht und die reine Fehlerbehebung sollte nur die letzten Probleme beheben und nicht zu so einer Exception führen.

Und du kannst den Code ja auch selbst testen. Mach einfach eine main Methode, in der du paar Räume erstellst und dann den Algorithmus von dir selbst aufrufst.
 

richtig

Mitglied
Danke für den Hinweis @KonradN, habe ich jetzt wieder eingefügt:

Java:
public class MazeSolver {

    public static SolutionStep findExit(Room currentRoom) {
        if (currentRoom.isExit()) {
            return new SolutionStep(null, null);
        }

        currentRoom.markVisited();

        for (Direction direction : Direction.values()) {
            Room nextRoom = currentRoom.getRoom(direction);
            if (nextRoom != null && !nextRoom.isVisited()) {
                SolutionStep result = findExit(nextRoom);
                if (result != null) {
                    return new SolutionStep(direction, result);
                }
            }
        }
        return null;
    }
}


Leider tritt die gleiche Fehlermeldung immer noch auf. Ich denke dann liegt es wohl an den vorgegebenen JunitTests (auf welche ich leider keinen lokalen Zugriff habe). Verstehe trotzdem nicht warum die Lösung dann anscheinend iterativ implementiert werden soll... Und wieso ich jetzt dennoch einen StackOverFlow erhalte.
Ich würde mal folgendes sagen, du bist via direction von a nach b gelangt. b stellt den Ausgang dar. Dann müsste es SolutionStep(currentRoom, null) in der Abbruchbedingung sein, wenn du da einen Weg aufbaust. Gegebenenfalls auch -direction (also die umgekehrte Seite), wenn rückwärts.
 

KonradN

Super-Moderator
Mitarbeiter
Ich würde mal folgendes sagen, du bist via direction von a nach b gelangt. b stellt den Ausgang dar. Dann müsste es SolutionStep(currentRoom, null) in der Abbruchbedingung sein, wenn du da einen Weg aufbaust. Gegebenenfalls auch -direction (also die umgekehrte Seite), wenn rückwärts.
Nein, in der Beschreibung ist das genau so wie im Code beschrieben. Der Raum, der ein Exit hat, der hat da das (null, null) und dann ist das immer der innere Knoten und der äußere Knoten ist die Richtung + dem SolutionStep, die es bis zum Exit hatte.

Das sieht also korrekt aus.
 

KonradN

Super-Moderator
Mitarbeiter
Durch die Markierung besuchter Räume sind Zyklen und so egal.

Was mir noch durch den Kopf geht: siehst Du Ausgaben der Unit Tests? Kannst Du mit System.out oder System.err etwas ausgeben und bekommst das auch als Ergebnis? Dann könntest Du Details ausgeben um zu sehen, was genau passiert.
 

MarvinsDepression

Bekanntes Mitglied
Muss man beim Backtracking vor dem Verlassen einer frustran verlaufenen Rekursion nicht den ursprünglichen Zustand wieder herstellen? Ich vermisse ein
currentRoom.markUnvisited();
nach der for-each-Schleife.
 

KonradN

Super-Moderator
Mitarbeiter
Muss man beim Backtracking vor dem Verlassen einer frustran verlaufenen Rekursion nicht den ursprünglichen Zustand wieder herstellen? Ich vermisse ein
currentRoom.markUnvisited();
nach der for-each-Schleife.
Das ist nicht notwendig, da Du ja nur irgend eine Lösung haben willst. Du gehst ja alle Möglichkeiten durch von dem Raum. Wenn Du also bei einem Raum r1 bist und du alle Möglichkeiten durchgegangen bist von diesem Raum: Warum solltest Du ihn noch einmal anpacken? Von r1 aus gibt es keinen Weg zu einem Exit. Da ist es doch egal, ob Du von r2 oder r3 zu r1 gekommen bist.
 

Barista

Top Contributor
Muss man beim Backtracking vor dem Verlassen einer frustran verlaufenen Rekursion nicht den ursprünglichen Zustand wieder herstellen? Ich vermisse ein
currentRoom.markUnvisited();
nach der for-each-Schleife.

Das ist notwendig. Prinzipiell kann man machen was man will, man kann es auch nennen wie man will (obwohl es dann Probleme mit der Kommunikation geben könnte, also kann man nennen wie man will für sich allein).

Aber es gibt best practices Lösungen, man macht sich das Leben einfacher, wenn man von anderen lernt.

Als Vergleich bietet es sich an, den flood fill algorithmus anzusehen.
 

KonradN

Super-Moderator
Mitarbeiter
Das ist notwendig.
Der wiederholte Hinweis ändert aber eben nichts daran, dass es eben nicht notwendig ist. Im Gegensatz dazu ist es sogar kontraproduktiv, da falsche Wege wiederholt geprüft werden.

Und wenn Du den Flood Fill Algorithmus anschaust, dann findest Du dort auch nicht das zurücksetzen in den ursprünglichen Zustand. Wäre ja auch blöd - Du willst z.B. alle Pixel umfärben - wieso solltest Du da einen umgefärbten Pixel wieder zur ursprünglichen Farbe zurück setzen?

Also einfach einmal selbst schauen:
 

erWeissEs

Neues Mitglied
Mal ein Beispiel:

1729166814447.png

Der Exit ist unten links. Es wäre ja cool, wenn der Ausgang direkt gefunden werden könnte. Aber ach ne, das geht ja nicht, weil Konrad vorschreibt, dass Markierungen nicht wieder rückgängig zu machen seien. Also durchlaufen wir halt alle Räume, um den schlechtmöglichsten Weg zu erhalten und die Unit-Tests fehlschlagen zu lassen. 🤣 Konrad und Logik und so. ;)
 

Karlter

Mitglied
Moin Leute, tut mir leid @richtig, ich bin gestern tatsächlich eingeschlafen :D Also die 100% erreiche ich immer noch nicht. Aber verstehe ich das jetzt richtig? Ich soll nochmal versuchen markUnvisited() zu implementieren? Hier spalten sich ja anscheinend die Meinungen… Danke Euch allen!
 

KonradN

Super-Moderator
Mitarbeiter
Mal ein Beispiel:

Anhang anzeigen 23157

Der Exit ist unten links. Es wäre ja cool, wenn der Ausgang direkt gefunden werden könnte. Aber ach ne, das geht ja nicht, weil Konrad vorschreibt, dass Markierungen nicht wieder rückgängig zu machen seien. Also durchlaufen wir halt alle Räume, um den schlechtmöglichsten Weg zu erhalten und die Unit-Tests fehlschlagen zu lassen. 🤣 Konrad und Logik und so. ;)
Tobias: Du solltest die Aufgabe lesen und verstehen. Es geht eben nicht darum, den kürzesten Weg zu finden sondern es geht nur darum irgend einen Weg zu finden ...

Moin Leute, tut mir leid @richtig, ich bin gestern tatsächlich eingeschlafen :D Also die 100% erreiche ich immer noch nicht. Aber verstehe ich das jetzt richtig? Ich soll nochmal versuchen markUnvisited() zu implementieren? Hier spalten sich ja anscheinend die Meinungen… Danke Euch allen!
Nein, das ist weder notwendig noch sinnvoll bei dieser Aufgabe. Das würde nur mit deutlich mehr Änderungen Sinn machen (Wie die Länge des Weges zu merken und nach finden eines Weges nicht abzubrechen sondern weiter zu suchen ...)

Ansonsten ist @richtig und @erWeissEs der Forentroll "Tobias", der ständig gebannt wird und dann dennoch immer wieder mit neuen Accounts daher kommt. Es ist in 99% der Fälle immer am besten, ihn zu ignorieren...
 

LimDul

Top Contributor
Moin Leute, tut mir leid @richtig, ich bin gestern tatsächlich eingeschlafen :D Also die 100% erreiche ich immer noch nicht. Aber verstehe ich das jetzt richtig? Ich soll nochmal versuchen markUnvisited() zu implementieren? Hier spalten sich ja anscheinend die Meinungen… Danke Euch allen!
Nein, brauchst du nicht. @richtig kannst du ignorieren, das ist im sinnvollsten. Bzw. das Gegenteil machen, dann ist die Trefferquote > 50% ;)
 


Schreibe deine Antwort... und nutze den </> Button, wenn du Code posten möchtest...
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
P Wie kann ich in meinem Java Programm etwas dauerhaft speichern? Java Basics - Anfänger-Themen 5
H Nutzt Eclipse alle CPU-Threads beim Ausführen von Java-Programmen? Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
A java.sql.SQLException: Data type mismatch. Java Basics - Anfänger-Themen 1
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
N Java Spiel Figur auf dem Hintergrundbild bewegen. Java Basics - Anfänger-Themen 11
G Kann Java-Programm nicht als jar aufrufen, auch als EXE nicht Java Basics - Anfänger-Themen 19
N Java Taschenrechner hat Jemand vlt einen Tipp dafür wie ich jetzt die buttons verbinden kann und das Ergebnis auf dem textfield anzeigen lassen kann Java Basics - Anfänger-Themen 13
A Lerngruppe Java Java Basics - Anfänger-Themen 2
G Help me in the Java Program Java Basics - Anfänger-Themen 2
L Java- Vererbung Java Basics - Anfänger-Themen 4
LimDul Suche Java Stream Tutorial Java Basics - Anfänger-Themen 2
_so_far_away_ Ich möchte Java lernen Java Basics - Anfänger-Themen 11
benny1993 Java Programm erstellen für ein Fußball-Turnier Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
MoxMorris this Keyword in Java Java Basics - Anfänger-Themen 14
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
wolei JAVA Zeitdifferenz feststellen. Java Basics - Anfänger-Themen 4
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
wolei Java generic interface in a generic class Java Basics - Anfänger-Themen 6
monsterherz Ablauf der Erstellung eines Java Programmes Java Basics - Anfänger-Themen 17
monsterherz Circle.java:5: error: <identifier> expected Java Basics - Anfänger-Themen 2
julian-fr Wie kann ich am besten Java lernen? Java Basics - Anfänger-Themen 17
A Java-Properties und -RessourceBundles Java Basics - Anfänger-Themen 5
lrnz22 Java-Basics-Aufgabe Java Basics - Anfänger-Themen 8
R Java kann nicht installiert werden Java Basics - Anfänger-Themen 8
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
G In ein java Dokument Ton einbinden Java Basics - Anfänger-Themen 1
C was heisst es wenn java ']' erwartet ? Java Basics - Anfänger-Themen 2
KeinJavaFreak Erste Schritte Programm "Java(TM) Platform SE binary " nicht vorhanden Java Basics - Anfänger-Themen 1
KeinJavaFreak Erste Schritte Java "Executable Jar File" nicht vorhanden Java Basics - Anfänger-Themen 1
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
J Java Testklasse Java Basics - Anfänger-Themen 5
P Java Selenium . Parameterized.Parameters erzeugt eine Fehlermeldung Java Basics - Anfänger-Themen 14
W Java-Code mit Array Java Basics - Anfänger-Themen 14
W Java-Code Java Basics - Anfänger-Themen 2
P BeforeEach AfterEach werden nicht ausgeführt. Java / Selenium Java Basics - Anfänger-Themen 4
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
W Java code- TicTac toe Java Basics - Anfänger-Themen 51
Ostkreuz Java Docs Java Basics - Anfänger-Themen 9
R Java boolean Unterschied " == " und " = " Java Basics - Anfänger-Themen 3
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Java-code Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben