Programmieren – die besten Beiträge

Java ArrayList BUG?

Ich habe eine Klasse "AndererTest", "xyPosition" und eine Klasse "Testerklasse".In der Klasse "AndererTest" wird eine ArrayList namens "abzufragendeKoordinaten" erstellt und außerdem auch ein mehrdimensionales Array "stringarray", welches Strings speichert. Ich möchte die Inhalte des "stringarray" ausgeben, aber in zufälliger Reihenfolge. Voher habe ich in der Klasse "TesterKlasse" - welche quasi hier die Main - Klasse mit der main methode sein soll - strings dem "stringarray" zugeordnet:

Klasse TesterKlasse:

Ausgegeben soll das "stringarray" mit der Methode arrayDurchlaufen(). Ausgegeben wird aber immer nur:

anstatt z.B.:

stringarray[2] [0] = f;
stringarray[1] [1] = "d";
stringarray[0] [2] = "b";
stringarray[2] [2] = "h";
//...

Hier ist der Code zur kritischen Klasse "AndererTest":

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

public class AndererTest {
static Random random = new Random();
    static xyPosition nullnull = new xyPosition(0,0);
    static xyPosition nulleins = new xyPosition(0,1);
    static xyPosition nullzwei = new xyPosition(0,2);
    static xyPosition einsnull = new xyPosition(1,0);
    static xyPosition einseins = new xyPosition(1, 1);
    static xyPosition einszwei = new xyPosition(1, 2);
    static xyPosition zweinull = new xyPosition(2, 0);
    static xyPosition zweieins = new xyPosition(2, 1);
    static xyPosition zweizwei = new xyPosition(2, 2);
    static ArrayList<xyPosition> abzufragendeKoordinaten = new ArrayList<>(Arrays.asList( nullnull, nulleins, nullzwei, einsnull, einseins, einszwei, zweinull, zweieins, zweizwei));

static String[] [] stringarray = new String[3] [3];
static int zufälligeMöglicheyPosition;
static int zufälligeMöglichexPosition;

public int getZufälligeMöglicheyPosition() {
    return zufälligeMöglicheyPosition;
}

public int getZufälligeMöglichexPosition() {
    return zufälligeMöglichexPosition;
}


public static void durchlaufeArray() {
    for (int i = 0; i < 9; i++) {
    int grenzeminuseins = abzufragendeKoordinaten.size() - 1;
   int zufälligerindex = random.nextInt(abzufragendeKoordinaten.size() - 1) + 0;

zufälligeMöglicheyPosition = abzufragendeKoordinaten.get(zufälligerindex).gety();
    
zufälligeMöglichexPosition = abzufragendeKoordinaten.get(zufälligerindex).getx();
abzufragendeKoordinaten.remove(zufälligerindex);

System.out.println("stringarray[" + zufälligeMöglicheyPosition + "] [" + zufälligeMöglichexPosition + "] = " + stringarray[zufälligeMöglicheyPosition] [zufälligeMöglichexPosition]);
 
}
}
}

Der Code zur Klasse xyPosition ist einfach und hier liegt der Fehler bestimmt nicht drin:

public class xyPosition {

static int x;
static int y;
public static Object xyPosition;
    
public xyPosition(int pX, int pY) {
x = pX;
y = pY;
    }

public int getx() { return x; }
public int gety() { return y; }
}

Bilder habe ich hier nur wegen der "nicht mehr genug Zeichen" - Funktion verw.
Biite helft mir, ich sitze schon seit 2 Tagen vor diesem Bug🤬

Bild zum Beitrag
Software, programmieren, Java, Informatik, Programmiersprache, Softwareentwicklung

Passwort entfernen über CMD mit bat. und ba-Datei Fehler?

Hey!

Vorweg schonmal: ich bin nicht sonderlich vertraut mit CMD und jeglichen Dingen, die aus Zeichen und Zahlen und Buchstaben entstehen, wenn es sich dabei um technische Sachen handelt.
Beim Durchforsten meines alten Schul-Netbooks habe ich eine Datei gefunden, die mit einem Passwort geschützt ist - genauer ist es eine ZIP-Datei.

Viele Anleitungen haben nur zu irgendwelchen Programmen geführt, die das Passwort knacken können sollen, aber das verlief ziemlich im Sand.
Zwei Anleitungen hatten etwas mit mehr Text zu tun, wovon eine direkt zu Beginn gescheitert war.
Die andere ist so gut wie perfekt gewesen, aber irgendwo muss ich einen Fehler gemacht haben.
https://www.passcope.com/de/how-to-remove-password-from-zip-file-if-forgot-zip-password/
Die letzte Anleitung auf der Seite ist es, aber hier kommen auch nochmal Bilder davon.

Es ist die Rede davon, dass man ein CMD Line-Tool benötigt. Damit ist im Grunde nur das CMD-Tool gemeint, das bei jedem Pc schon mit drauf ist, richtig?

War ein wenig fizelig, das alles rauszuschreiben, aber scheint eigentlich alles da zu sein. Bei den Gleichzeichen ganz oben (sind doch Gleichzeichen, oder?) und den Bindestrichen gab es Schwierigkeiten, aber bei dem ersten Bild konnte man das dann besser ablesen.

Mit dem Explorer an sich konnte ich die eigentliche Zip-Datei nicht ändern, da sich durch's Anfügen der .ba-Endung nur der Name geändert hat, in winrar konnte ich es dann.

Beide Dateien liegen auf dem Desktop

Wenn ich die bat-Datei öffne, taucht auch genau das auf, ich gebe den Dateinamen ein, kopiere aus den Eigenschaften der ba-Datei den Pfad und wenn ich nochmal Enter drücke, schließt sich das Programm ohne seinen Zweck zu erfüllen.

Rechts taucht dann (sobald ich die batch-Datei öffne) dieses "UnRAR" und es bleibt auch, wenn sich CMD wieder schließt.

Ja, ist jetzt ziemlich lang geworden, aber dachte dass der Weg zum Problem wichtig sein könnte.
Wo könnte der Fehler liegen?
Oh und wenn ich das Passwort so rauskriegen sollte, wie kann ich's dann bei der Zip-Datei eingeben? Es ist ja keine Datei mehr, die ich irgendwie öffnen kann. Also ich habe halt noch Kopien davon (sicher war sicher), aber lässt sich die Datei auch wieder "normal" in ihre Ursprungsform bringen?

Danke schon einmal im Voraus und hoffentlich hat sich das jemand alles durchgelesen lol
Falls euch ein besserer Titel für die Frage einfällt nur her damit (ebenso bei den Tags)

Bild zum Beitrag
Computer, Windows, programmieren, WinRAR, Batch, cmd, Command, Eingabeaufforderung, passwort knacken, zip-datei

Java Referenzdatentypen?

Mir ist ein bestimmter Aspekt, und zwar der Sinn einer Referenz noch nciht ganz klar geworden:

Primitiver Datentyp:

int zahl = 8;

Hier wird ja mit der Deklarierung der Variable zahl eine Adresse für einen gerade freien Speicherplatz erzeugt und in diesem Speicherort der Wert der Variable, 8, abgelegt.
So wie in meiner Zeichnung:

Referenzdatentyp:

Mensch mensch1 = new Mensch(16); //16 = pAlter

Hier wird auch mit der Variable einem gerade freien Speicherplatz eine Adresse zugeordnet. Dann wird in dem freien Speicherplatz, glaube ich, nichts (kein Variablen Wert (new Mensch(16) ) ) abgelegt, sondern nur eine komplett andere Adresse. Folgt man dieser Adresse und guckt in dem durch sie verwiesenen Speicherplatz nach, findet man da unseren Variablen - Wert = new Mensch(16).
Wie in meiner Zeichnung hier:

Was ich jetzt nicht so richtig verstehe ist, warum wird unser Variablenwert (unser neues menschen - objekt) unter einer anderen Adresse abgelegt, als der, der der Variable "mensch1"eigentlich zugeordnet wurde? Sprich: Wozu eine Referenz auf eine andere Adresse (ich glaube immer Referenz auf eine andere Adresse, vielleicht ist es aber auch in WIrklichkeit eine Referenz auf das neue Menschen Objekt?)? Warum nicht so wie beim primitiven Datentypen machen, also so wie bei meiner Zeichnung hier unten?:

omg, diese logik - aber es macht mir Spaß, zu programmieren und ich möchte alles unbedingt verstehen !😊

Bild zum Beitrag
Software, Schule, IT, programmieren, Java, Informatik, Programmiersprache, Softwareentwicklung

Meistgelesene Beiträge zum Thema Programmieren