Java Binary Tree Remove Methode implementieren?

Hey Leute,
Ich versuche folgende Binary Tree Methode zu implementieren:

public void remove(T data) {
    root = remove(root, data);
}

private Nodes<T> remove(Nodes<T> root, T data) {
    Nodes<T> current = root;
    if (current == null) {
        return current;
    }
    if (current.getData().compareTo(data) > 0) {
        current.getLeftChild() = remove(current.getLeftChild(), data);
    } else if (current.getData().compareTo(data) < 0) {
        current.getRightChild() = remove(current.getRightChild(), data);
    } else {
        if (current.getLeftChild() == null && current.getRightChild() == null) {
            current = null;
        } else if (current.getRightChild() == null) {
            current = current.getLeftChild();
        } else if (current.getLeftChild() == null) {
            current = current.getRightChild();
        } else {
            Nodes<T> temp = findMinFromRight(current.getRightChild());
            current.getData() = temp.getData();
            current.getRightChild() = remove(current.getRightChild(), temp.getData());
        }
    }
    return current;
}

Er zeigt mir bei folgenden Abschnitten "Variable expected" an, aber hier sollte keine Variable erwartet werden:

if (current.getData().compareTo(data) > 0) {
    current.getLeftChild() = remove(current.getLeftChild(), data);
} else if (current.getData().compareTo(data) < 0) {
    current.getRightChild() = remove(current.getRightChild(), data);

...

 else {
    Nodes<T> temp = findMinFromRight(current.getRightChild());
    current.getData() = temp.getData();
    current.getRightChild() = remove(current.getRightChild(), temp.getData());
}

Danke schonmal für eure Hilfe!

Computer, programmieren, Java, Informatik, Liste, IntelliJ IDEA
Warum kann ich das LibGDX Programm nicht ausführen?

Ich kann das Startprogramm (ohne es verändert zu haben) nur debuggen (funktioniert so wie es soll) und nicht normal ausführen. Deshalb habe ich das Projekt in eine JAR-Datei exportiert, um zu sehen, ob man es so auch öffnen kann. Aber es funktioniert nicht. Die Konsole gibt diesen Fehler aus:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: core/assets/badlogic.jpg
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:149)
    at com.badlogic.gdx.graphics.TextureData$Factory.loadFromFile(TextureData.java:98)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:114)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:110)
    at de.georgy.main.Main.create(Main.java:16)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:149)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:126)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: core\assets\badlogic.jpg (Internal)
    at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:142)
    at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:228)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:146)
    ... 7 more
programmieren, Java, LibGdx, IntelliJ IDEA
IntelliJ: importiertes Package wird nicht gefunden?

Hallo,

ich habe ein kleines Test-Projekt in IntelliJ erstellt. Dazu habe ich über Project Structure -> Libraries -> Maven eine Bibliothek eingebunden. Diese finde ich auch als jar-Datei links im lib-Ordner. Will ich das Programm ausführen, erhalte ich den Compiler-Fehler, dass die von mir benutzen Packages nicht gefunden wurden.

Compiler-Ausgabe:

18:37:49: Executing task 'Main.main()'...
> Task :compileJava FAILED
C:[gekürzt]\src\main\java\Main.java:1: error: package org.firmata4j does not exist
import org.firmata4j.IODevice;
          ^
C:[gekürzt]\src\main\java\Main.java:2: error: package org.firmata4j.firmata does not exist
import org.firmata4j.firmata.FirmataDevice;
              ^
C:[gekürzt]\src\main\java\Main.java:12: error: cannot find symbol
    IODevice device = new FirmataDevice("COM3"); // using the name of a port
    ^
 symbol:  class IODevice
 location: class Main
C:[gekürzt]\src\main\java\Main.java:12: error: cannot find symbol
    IODevice device = new FirmataDevice("COM3"); // using the name of a port
               ^
 symbol:  class FirmataDevice
 location: class Main
4 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 2s
1 actionable task: 1 executed
Compilation failed; see the compiler error output for details.
18:37:52: Task execution finished 'Main.main()'.

_____________________________________________________________________________

Warum gibt erst der Compiler den Fehler aus, dass die Packages - warum auch immer - nicht gefunden werden konnten und nicht schon IntelliJ selbst?

Mein Java-Code:

import org.firmata4j.IODevice;
import org.firmata4j.firmata.FirmataDevice;
import java.io.IOException;

public class Main {
  public static void main(String[] args) throws IOException, InterruptedException {
    System.out.println("Moinsen!");

    IODevice device = new FirmataDevice("COM3"); // using the name of a port
    device.start(); // initiate communication to the device
    device.ensureInitializationIsDone(); // wait for initialization is done
  }
}
PC, Computer, Technik, programmieren, Java, IntelliJ IDEA
Java "Hauptklasse konnte nicht gefunden oder geladen werden"?

Ich habe gestern angefangen java zu lernen, ich nutze die IntelliJ IDE von jetbrains.

Wenn ich in meinem Projekt mehr als eine Klasse habe bekomme ich beim ausführen folgenden fehler:

Fehler: Hauptklasse Test.jar konnte nicht gefunden oder geladen werden
Ursache: java.lang.ClassNotFoundException: Test.jar

Ich erstelle die .jar datei folgendermaßen:

Bei IntelliJ habe ich unter Projectstructur/artifacts einen neuen eintrag erstellt, als Main Class meine main Klasse angegeben und dann über Build/Build Artifacts/Build die jar datei erstellt. In dem Ordner mit dieser Datei befindet sich ausschließlich die Test.jar Datei (Was, nebenbei bemerkt nicht der Name meiner Klasse ist, sollte das irgentwelche auswirkungen haben ist es allerdings nicht der Grund für mein Problem da ich bereits ein zweites projekt erstellt habe, in welchem die Klasse und die jar Datei gleich hießen und es dennoch nicht funktioniert hat (Selbe Fehlermeldung)), welche ich dann mit 'java Test.jar' ausführe. Nun bekomme ich den oben gennanten error. Meine Hauptklasse sieht wie folgt aus:

import cons.colors;

public class greyscale_converter {

public static void main(String[] args){

    System.out.println(args[0]);
}

}

Ich habe dann in dem Projekt noch das package 'cons' erstellt, in welchem sich die Klasse 'colors' befindet. Diese sieht wie folgt aus:

package cons;

public class colors {
}

Ich möchte nun also die jar datei erstellen können und von der main methode in der 'greyscale_converter' Klasse auf die klasse colors zugreifen können, bevor ich allerdings soweit kam erhielt ich schon die Fehlermeldung nach welcher die Hauptklasse nicht gefunden werden könne. Nach einer halben stunde googlen bin ich noch auf keine Lösung gestoßen die bei mir funktioniert hat. Danke schonmal.

Computer, programmieren, Java, Fehlermeldung, IntelliJ IDEA
Anfänger braucht Hilfe mit Java, habe 2 Fragen?

Hallo Leute,

wie schon im Titel steht hätte ich 2 Fragen, also:

  1. Habe eine Programm zu programmieren welches feststellt ob die gegebene Zahl eine narzisstische Zahl ist. Jedoch bleib ich schon ganz am Anfang stecken, da wir weder die Klassen Math noch String verwenden dürfen. Wie kann ich z.B. die Zahl 153 auseinander nehmen, damit ich die 1, 5 und die 3 habe? Ich habe mir gedacht die Zahl z.B. durch 100 zu teilen dann hätte ich ja schon die 1 mit Nachkommastellen, welche ich aber abschneiden müsste. Könnte ich die Klasse String verwenden wäre es wahrscheinlich etwas leichter. Bin ich hier auf dem richtigen Weg?
  2. Bei einer anderen Aufgabe müssen wir einen "Rautengenerator" programmieren. Habe ein Bild angehängt damit die Frage etwas verständlicher ist. Mit dem Scanner lese ich eine ungerade Zahl ein (bei geraden Zahlen soll es abbrechen, soweit so gut), mit der ich die Höhe der Raute angebe. Ganz rechts wäre mit Höhe 1, Mitte mit Höhe 5 und links mit Höhe 11. Aber mit was genau fange ich hier an? Meine Überlegung war 2 for Schleifen, mit der einen gebe ich die Zeilen an und mit der 2 verschachtelten Schleife zeichne ich die Rauten. Wäre das soweit korrekt?

Ich bitte hier nicht um fix fertige Lösungen sondern um ein paar Tipps bzw. Lösungsansätze wie ich hier vorgehen soll, da mich diese Aufgaben in den Wahnsinn treiben, wenn ich noch länger darüber grüble.

MfG

Josef

Bild zum Beitrag
PC, Computer, programmieren, Java, Informatik, Quellcode, IntelliJ IDEA

Meistgelesene Fragen zum Thema IntelliJ IDEA