Vergleich von Array-Inhalten

Zeppi

Aktives Mitglied
Moin,
ich habe einen Konstruktor geschrieben, in dem überprüft wird, ob dieser Array-Inhalt schon einmal vergeben wurde. Dazu habe ich aber ein paar Fragen.
[CODE lang="java" title="class Position"]public Positionen(int ANZAHL, int X, int Y) {
x = new Koordinate[ANZAHL];
for (int i = 0; i < ANZAHL; i++) {
x = new Koordinate(X,Y);
for (int j = 0; j < i; j++) {
if (x.equals(x[j])) {
System.out.println("doppelt" + i);
i--;
}
}
}
}[/CODE]
[CODE lang="java" title="class Koordinate"]public boolean equals(Koordinate vgl) {
return this.x ==vgl.x && this.y==vgl.y;
}[/CODE]
Wenn ich jetzt alles ausführe, werden mir alle (10) Werte ausgegeben, auch wenn welche doppelt sind, werden am Ende 10 verschiedene Werte zurückgegeben, plus den markierten doppelten Wert. Aber wo genau wird dann der Wert, der doppelt ist, ersetzt? Außerdem steht doch in x[i] und x[j] das gleiche oder? Wird als erstes x[i] gefüllt, oder wird jeder Wert erstmal reingetan und gleich verglichen und danach der zweite Wert etc.? Sind nicht beim ersten Durchgang die Werte von x[i] und x[j] automatisch gleich? Denn dann steht doch beim ersten Durchgang x[0] und x[0] und die müssten ja gleich sein. //Vermutlich steht doch am Anfangt nicht das Gleiche, da i-- und j++ geht.

Vielleicht kann mir das ja jemand kurz erklären.
Danke Zeppi
 
Zuletzt bearbeitet:
K

kneitzel

Gast
Also was erst einmal auffällt:

a) equals Methode überschreibt nicht Object.equals: Da deine Methode eine andere Signatur hat, wird die Methode nicht überschrieben. Daher bitte beim Überschreiben einer Methode immer eine @Overrides Annotation - dann kann geprüft werden, dass wirklich eine Methode überschrieben wird und Du bekommst eine entsprechende Meldung, wenn das nicht der Fall ist.

b) Java Naming Convenmtions - es ist üblich, Variablen und Parameter klein zu schreiben, also anzahl, x, y ... Dann ggf. sinnvolle Namen vergeben - es ist extrem mangelhaft, mehrere variablen mit eigentlich gleichem Namen zu haben ... Du hast x, X, ... Damit sind Fehler vorprogrammiert!

c) for ist meiner Meinung nach eine zählschleife und die Zählvariable innerhalb des Blockes zu verändern ist ein sehr schlechter Stil, denn sowas wird in der Regel nicht erwartet. Da wäre dann mein Tipp, z.B. auf eine while Schleife zu wechseln.

Zu Deiner Verständnisfrage: Hast Du den Code nicht geschrieben? Geh den Code doch einmal durch, entweder auf einem Zettel oder mit dem Debugger ... oder gibt mehr Text aus, damit Du den Code nachvollziehen kannst. Das ist etwas, das Du auf jeden Fall als Übung machen solltest, denn nur so vertieft sich das auch wirklich.
Aber um es auch schnell zu beantworten:
In der Äußeren Schleife geht es um das Füllen - eine Koordinate nach der anderen ...
in der Inneren Schleife wird dann für jede neu hinzugefügte Koordinate geprüft, ob diese schon vorhanden ist.
Und bei x und x[j] ist das i doch immer ungleich dem j - denn so ist ja die innere Schleife ausgewählt ... wenn i = 0 ist, dann geht die Schleife von j = 0 an, aber nur so lange, wie j < 0 - und das ist nie der Fall, also bei i = 0 wird die innere Schleife nie ausgeführt.
Bei i = 1 wird die innere Schleife nur für j = 0 ausgeführt.
Bei i = 2 wird die innere Schleife für j = 0 und 1 ausgeführt....
 

temi

Top Contributor
Der Name der Klasse ist "Positionen", oder?

Dem Konstruktor übergibst du allerdings nur genau eine Position X,Y, die du dann ANZAHL-mal in das Array x einfügst.

Dieses Array x wird beim Aufruf des Konstruktors neu erzeugt und ist damit erstmal leer.

Was hast du eigentlich vor?

Eine, anhand der Namensgebung, sinnvolle Vorgehensweise wäre vermutlich:

  • Ein Konstruktor, der die Anzahl der möglichen Positionen übernimmt und das Array entsprechend initialisiert.
  • Eine Methode addPosition(), die eine Koordinate hinzufügt und vorher prüft, ob es diese Position schon gibt.
 
Zuletzt bearbeitet:

temi

Top Contributor
Ach und noch eine Kleinigkeit, die man in seine Überlegungen einbeziehen kann: Der Konstruktor nimmt drei int-Parameter, es ist also schwierig zu erkennen, welche Funktion die jeweilige Stelle einnimmt. Ist es die Anzahl oder ein Koordinaten-Bestandteil?
Da du bereits einen expliziten Typen für eine Position hast, ist es besser diesen hier gleich zu verwenden, um das eindeutiger zu machen: public Positionen(int anzahl, Koordinate koordinate). Allerdings gilt weiterhin, was ich oben geschrieben hatte.
 
K

kneitzel

Gast
Danke für die ausführliche Antwort. Doch ich habe den Code geschrieben, bzw. der ist abgeleitet aus einer Aufgabe aus einer Vorlesung.
Ich hoffe, das ist nicht falsch angekommen.... Ich wollte Dir da nichts unterstellen. Das "abgeleitet von einer Aufgabe" erklärt meinen Eindruck.

Zum einen hoffe ich, dass die Erklärung etwas weiter geholfen hat, aber ich möchte die Gelegenheit noch einmal nutzen um Dir die praktische Übung ans Herz zu legen. Speziell das:
oder mit dem Debugger ... oder gibt mehr Text aus
Hintergrund ist, dass Du Dir so selbst gewisse Dinge schneller erarbeiten kannst und mit dem "Herum Spielen" vertiefst Du Dein Verständnis!

Wir beantworten Dir hier gerne alle Fragen und helfen weiter - aber ich schaue auch immer, ob ich evtl. Dinge sehe, die vertieft werden könnten um einem Fragesteller generell weiter zu helfen. Und dieser Punkt ist mir etwas aufgefallen.

Also konkret wären die Punkte:
a) Wenn Du eine IDE nutzt (Eclipse, IntelliJ, ..) dann hat die IDE bestimmt einen integrierten Debugger - der kann sehr hilfreich bei praktischen Aufgaben sein. Daher ruhig einmal anschauen.
b) Schau einfach einmal, was Du alles an Informationen ausgeben kannst. Dann bekommst Du ein ganze Menge Ausgabe, die Dir zeigt, was wann passiert. Also innerhalb des Schleifenblocks kannst Du etwas ausgeben wie: "Schleifendurchgang: i := " + i ... oder auch Zuweisungen ausgeben, wenn Du also x[i] etwas zuweist, dann kannst Du eine Ausgabe erzeugen a.la. "x[i=" + i + "] = " + x[i]
(Jeweils einfach mal angegeben, was in einem System.out.println übergeben werden könnte ...)

Und dann generell der Aufruf: Spiel etwas mit dem Code. Wenn Dir Ideen kommen, was Du anpassen könntest, dann mach es. Ändere eine for Schleife in eine While Schleife, verändere die Namen von Variablen, Schiebe Teile vom Code in eine Methode, ...
Ggf: Wenn Du sowas manuell hin bekommen hast, dann könntest Du auch die Mittel der IDE anschauen. Die bieten dafür auch viele Möglichkeiten.

Das einfach nur, um meine Sicht noch etwas zu erläutern.
 

temi

Top Contributor
In der Äußeren Schleife geht es um das Füllen - eine Koordinate nach der anderen ...
in der Inneren Schleife wird dann für jede neu hinzugefügte Koordinate geprüft, ob diese schon vorhanden ist.
Verstehe nicht, wie das gehen soll. Es wird ja nur eine Koordinate übergeben... Wo ist denn da das "eine Koordinate nach der anderen"?
 

Zeppi

Aktives Mitglied
Danke für deine Tipps. Ich werde mich mal ran setzen und den Debugger ausprobieren bzw. mich mal einlesen, wie genau der funktioniert. Ich finde es sehr gut, dass Du dir für jeden so viel Zeit nimmst und wirklich versuchst es zu erklären, bis man es sehr gut versteht. Außerdem sind Deine Tipps (wie jetzt auch schon wieder) immer sehr hilfreich/lehrreich und machen das Java lernen auf jedenfall
Ich hoffe, das ist nicht falsch angekommen.... Ich wollte Dir da nichts unterstellen. Das "abgeleitet von einer Aufgabe" erklärt meinen Eindruck.

Zum einen hoffe ich, dass die Erklärung etwas weiter geholfen hat, aber ich möchte die Gelegenheit noch einmal nutzen um Dir die praktische Übung ans Herz zu legen. Speziell das:

Hintergrund ist, dass Du Dir so selbst gewisse Dinge schneller erarbeiten kannst und mit dem "Herum Spielen" vertiefst Du Dein Verständnis!

Wir beantworten Dir hier gerne alle Fragen und helfen weiter - aber ich schaue auch immer, ob ich evtl. Dinge sehe, die vertieft werden könnten um einem Fragesteller generell weiter zu helfen. Und dieser Punkt ist mir etwas aufgefallen.

Also konkret wären die Punkte:
a) Wenn Du eine IDE nutzt (Eclipse, IntelliJ, ..) dann hat die IDE bestimmt einen integrierten Debugger - der kann sehr hilfreich bei praktischen Aufgaben sein. Daher ruhig einmal anschauen.
b) Schau einfach einmal, was Du alles an Informationen ausgeben kannst. Dann bekommst Du ein ganze Menge Ausgabe, die Dir zeigt, was wann passiert. Also innerhalb des Schleifenblocks kannst Du etwas ausgeben wie: "Schleifendurchgang: i := " + i ... oder auch Zuweisungen ausgeben, wenn Du also x[i] etwas zuweist, dann kannst Du eine Ausgabe erzeugen a.la. "x[i=" + i + "] = " + x[i]
(Jeweils einfach mal angegeben, was in einem System.out.println übergeben werden könnte ...)

Und dann generell der Aufruf: Spiel etwas mit dem Code. Wenn Dir Ideen kommen, was Du anpassen könntest, dann mach es. Ändere eine for Schleife in eine While Schleife, verändere die Namen von Variablen, Schiebe Teile vom Code in eine Methode, ...
Ggf: Wenn Du sowas manuell hin bekommen hast, dann könntest Du auch die Mittel der IDE anschauen. Die bieten dafür auch viele Möglichkeiten.

Das einfach nur, um meine Sicht noch etwas zu erläutern.
Danke für deine Tipps. Ich werde mich mal ran setzen und den Debugger ausprobieren bzw. mich mal einlesen, wie genau der funktioniert. Ich finde es sehr gut, dass Du dir für jeden so viel Zeit nimmst und wirklich versuchst es zu erklären, bis man es sehr gut versteht. Außerdem sind Deine Tipps (wie jetzt auch schon wieder) immer sehr hilfreich/lehrreich und machen das Java lernen noch spaßiger :)
 

Zeppi

Aktives Mitglied
Verstehe nicht, wie das gehen soll. Es wird ja nur eine Koordinate übergeben... Wo ist denn da das "eine Koordinate nach der anderen"?
Ich weiß nicht genau was du meinst, aber vielleicht hilft Dir der Code-Schnipsel weiter, den ich vorher hier nicht aufgelistet habe.
[CODE lang="java" title="Hier die komplette Klasse Koordinate"]public class Koordinate {
private int x;
private int y;

public int getX() {
return x;
}
public int getY() {
return y;
}

public Koordinate(int X, int Y) {
java.util.Random zufall = new java.util.Random();
this.x= zufall.nextInt(X); //X und Y werden in der main-Methode ein Wert zugewiesen (in dem Fall 9 und 7)
this.y= zufall.nextInt(Y);
}
public boolean equals(Koordinate vgl) {
return this.x ==vgl.x && this.y==vgl.y;
}
public String toString() {
return " " + this.x +"," +this.y;
}
}
[/CODE]
Und es wird ja pro Schleifendurchlauf die Klasse aufgerufen und dann jeweils eine random Zahl übergeben etc.
Außerdem muss ich sagen, dass ich eine schlechte Wahl bezüglich der Variablen getroffen habe.
 
K

kneitzel

Gast
Genau das hatte ich noch im Hinterkopf - das hattest Du schon einmal im Forum gepostet.

Aber das zeigt sehr schön, dass es wichtig ist, Variablen und Parameter gut zu benennen. X und Y sind hier ja eher maxX und maxY oder so.
 

temi

Top Contributor
Ich weiß nicht genau was du meinst, aber vielleicht hilft Dir der Code-Schnipsel weiter, den ich vorher hier nicht aufgelistet habe.
Ja, jetzt ist es klar. Es ist gar keine Koordinate, die dem Konstruktor übergeben wird, sondern Grenzen. Die Koordinaten werden dann innerhalb der Grenzen zufällig erzeugt. Dieser Teil hat mir gefehlt. ;)

Eine Möglichkeit, die Klasse Koordinate etwas klarer zu gestalten, wäre eine statische Methode für die Erzeugung der Zufallskoordinate zu verwenden:
Java:
public class Koordinate {
    private int x;
    private int y;
 
    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }

    // Erzeugt eine bestimmte Koordinate
    public Koordinate(int x, int y) {
        this.x = x;
        this.y = y;
    }
   
    // Erzeugt eine zufällige Koordinate
    public static Koordinate generateRandom(int maxX, int maxY) {
        Random random = new Random();
        return new Koordinate(random.nextInt(maxX), random.nextInt(maxY));
    }

// dann im weiteren Code

Koordinate koord = Koordinate.generateRandom(10, 10);

Damit ist die Klasse Koordinate das, was man von ihr erwartet, nämlich eine Klasse, die eine Koordinate repräsentiert. Zusätzlich bietet sie eine Methode, um eine zufällige Instanz von sich selbst zu erzeugen.
 
Zuletzt bearbeitet:

Zeppi

Aktives Mitglied
Ja, jetzt ist es klar. Es ist gar keine Koordinate, die dem Konstruktor übergeben wird, sondern Grenzen. Die Koordinaten werden dann innerhalb der Grenzen zufällig erzeugt. Dieser Teil hat mir gefehlt. ;)

Eine Möglichkeit, die Klasse Koordinate etwas klarer zu gestalten, wäre eine statische Methode für die Erzeugung der Zufallskoordinate zu verwenden:
Java:
public class Koordinate {
    private int x;
    private int y;

    public int getX() {
        return x;
    }
    public int getY() {
        return y;
    }

    // Erzeugt eine bestimmte Koordinate
    public Koordinate(int x, int y) {
        this.x = x;
        this.y = y;
    }
  
    // Erzeugt eine zufällige Koordinate
    public static Koordinate generateRandom(int maxX, int maxY) {
        Random random = new Random();
        return new Koordinate(random.nextInt(maxX), random.nextInt(maxY));
    }

// dann im weiteren Code

Koordinate koord = Koordinate.generateRandom(10, 10);

Damit ist die Klasse Koordinate das, was man von ihr erwartet, nämlich eine Klasse, die eine Koordinate repräsentiert. Zusätzlich bietet sie eine Methode, um eine zufällige Instanz von sich selbst zu erzeugen.
Klasse, werde ich einbauen.
 

temi

Top Contributor
Ach so, die equals() Methode von Koordinate ist noch nicht richtig. Damit überschreibst du nicht das equals() von Object, sondern überlädst es.

Die Signatur lautet public boolean equals(Object obj). Und immer schön @Override verwenden, wenn du etwas überschreiben möchtest.
Java:
@Override
public boolean equals(Object obj) {
    // dein Code
}

@Override
public String toString() {
    // dein Code
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vergleich zweier Array Stellen mit equals/NullpointerException Java Basics - Anfänger-Themen 9
N Methoden Array vergleich funzt nicht Java Basics - Anfänger-Themen 8
K Vergleich von variable und array Java Basics - Anfänger-Themen 9
loadbrain Array vergleich mit 2 for schleifen Java Basics - Anfänger-Themen 6
G Vergleich Eingabe mit Wert in vorhandenem Array Java Basics - Anfänger-Themen 2
heinrich172 Methoden Trotz gleichem Element stimmt Vergleich nicht? Java Basics - Anfänger-Themen 7
U Interface als PAramter (Vergleich) und ein Error Java Basics - Anfänger-Themen 9
K Erste Schritte Wie schnell ist LinkedHashMap im Vergleich zur ArrayList, wenn alle Entries durchlaufen werden? Java Basics - Anfänger-Themen 47
B Performance-Vergleich mit C++ Java Basics - Anfänger-Themen 55
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
B Date - Vergleich (equals / after) ? Java Basics - Anfänger-Themen 3
J Problem beim vergleich von zwei Integer Java Basics - Anfänger-Themen 3
W Vergleich von DatenPaketen Java Basics - Anfänger-Themen 6
B String vergleich Java Basics - Anfänger-Themen 3
C Probleme mit String-Vergleich Java Basics - Anfänger-Themen 4
K File-Name Vergleich Java Basics - Anfänger-Themen 2
V Fließkommazahlen Vergleich Java Basics - Anfänger-Themen 7
J Vergleich Java Basics - Anfänger-Themen 2
N Vergleich von Strings schlägt fehl.. Java Basics - Anfänger-Themen 5
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
T Vergleich und Ausgabe von Zahlen Java Basics - Anfänger-Themen 1
G Klassen Vergleich zweier Klassen Java Basics - Anfänger-Themen 23
J Fehler bei Vergleich auf den grössten Wert Java Basics - Anfänger-Themen 2
A Do-While Schleife; int vergleich Java Basics - Anfänger-Themen 2
G Wieviel kostet der Zugriff auf Objektattribute im Vergleich zur Erstellung von vars in Methode? Java Basics - Anfänger-Themen 11
T Input/Output String-Vergleich schlägt fehl Java Basics - Anfänger-Themen 7
W Konvertierung und Vergleich unterschiedlicher Zeitformate Java Basics - Anfänger-Themen 11
L Vergleich zweier Variablen, mit Abweichung Java Basics - Anfänger-Themen 3
N Methoden Methode zum Vergleich zweier Geburtstage Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
M String-Vergleich und NullPointerException Java Basics - Anfänger-Themen 4
L PW-Vergleich Java Basics - Anfänger-Themen 5
N Vergleich zweier String Arrays scheitert Java Basics - Anfänger-Themen 3
S Vergleich von Listen Java Basics - Anfänger-Themen 6
J vergleich von arrays (benötige Hilfe/Denkanstoß) Java Basics - Anfänger-Themen 16
V Einfacher vergleich von Arrays geht schief Java Basics - Anfänger-Themen 2
T Operatoren Multiplikation nur mit Addition, Subtraktion und Vergleich Java Basics - Anfänger-Themen 29
B Char-Vergleich Sonderzeichen Java Basics - Anfänger-Themen 6
S Vergleichsmethode zum Objekt-Vergleich mit < und > Java Basics - Anfänger-Themen 4
F Problem bei Vergleich Java Basics - Anfänger-Themen 3
S File vergleich - Junit Java Basics - Anfänger-Themen 6
P String-Vergleich Java Basics - Anfänger-Themen 3
S Multiplikation durch Addition, Subtraktion und Vergleich von Zahlen Java Basics - Anfänger-Themen 14
W Vergleich ob Buchstabe in einem Wort enthalten ist Java Basics - Anfänger-Themen 3
C String Objekte Vergleich je nach Instanzierung unterschiedlich!!?!! Java Basics - Anfänger-Themen 4
R String-Vergleich Java Basics - Anfänger-Themen 15
C Variablen Vergleich funktioniert nicht Java Basics - Anfänger-Themen 11
J Erste Schritte Vergleich der String-Objekte Java Basics - Anfänger-Themen 17
B Zwei verschiedene Daten vergleich Java Basics - Anfänger-Themen 2
A Variablen Vergleich Java Basics - Anfänger-Themen 5
P Erste Schritte vergleich substring und string Java Basics - Anfänger-Themen 4
G Date - Calender | "Vergleich" Java Basics - Anfänger-Themen 3
M Vergleich mit Toleranz Java Basics - Anfänger-Themen 7
B Objekt Vergleich - Unterschiede ausgeben Java Basics - Anfänger-Themen 4
P Vergleich mit Variablen Java Basics - Anfänger-Themen 6
Y Java Programm URL und String Vergleich! Java Basics - Anfänger-Themen 4
L vergleich zweier texte Java Basics - Anfänger-Themen 18
H Beim Vergleich/Sortieren mehr als zwei Objekte berücksichtigen Java Basics - Anfänger-Themen 14
B Vergleich zweier Objekte durch "Hashfunktion" Java Basics - Anfänger-Themen 12
P Vergleich von Enums Java Basics - Anfänger-Themen 4
S String Vergleich funktioniert nicht Java Basics - Anfänger-Themen 3
A String-Vergleich geht nicht Java Basics - Anfänger-Themen 2
U Automatenprüfung in Java implementieren — String Vergleich klappt nicht Java Basics - Anfänger-Themen 40
F Methoden Vergleich von int Zahlen Java Basics - Anfänger-Themen 16
F Login Passwort-Vergleich Java Basics - Anfänger-Themen 12
N Vergleich per equals Java Basics - Anfänger-Themen 5
Z XML Vergleich Java Basics - Anfänger-Themen 20
S Herunterladen von Dateien mit Vergleich Java Basics - Anfänger-Themen 6
L Problem String-Vergleich Java Basics - Anfänger-Themen 2
E Objekte-Vergleich Java Basics - Anfänger-Themen 6
Y Datentypen String vergleich Java Basics - Anfänger-Themen 3
R Vergleich von Objekten anhand variierender Kriterien Java Basics - Anfänger-Themen 5
K Datentypen Arrays in Java - Adress-Arithmetik im Vergleich zu Listen Java Basics - Anfänger-Themen 4
S equals vergleich Java Basics - Anfänger-Themen 10
A Datentypen instanceof VS Class - Vergleich Java Basics - Anfänger-Themen 4
M Char vergleich zu Int Java Basics - Anfänger-Themen 10
G Wann ist ein == Vergleich bei Gleitkommazahlen fahrlässig? Java Basics - Anfänger-Themen 8
algorismi Ausführungszeit Vergleich == true Java Basics - Anfänger-Themen 8
J Performance Vergleich von if-Abfragen mit mehreren Bedingungen Java Basics - Anfänger-Themen 9
T Zwei listen vergleich und selbige löschen Java Basics - Anfänger-Themen 4
T Vergleich mit Typecasts Java Basics - Anfänger-Themen 3
Screen Eine Frage zu moueMove in applets und deren Vergleich Java Basics - Anfänger-Themen 11
M Vergleich Float-, Doublewert Java Basics - Anfänger-Themen 10
G Vergleich zweier Arrays Java Basics - Anfänger-Themen 8
U Methode Vergleich von 2 Arrays Java Basics - Anfänger-Themen 5
S String Vergleich mit Passwort geht nur bei Zahlen ? Java Basics - Anfänger-Themen 7
G Vergleich klappt nicht Java Basics - Anfänger-Themen 3
T Vergleich von generischen Typen Java Basics - Anfänger-Themen 2
C DB Vergleich mit Eingabe Java Basics - Anfänger-Themen 5
G Vergleich großer Basen/Exponenten? Java Basics - Anfänger-Themen 3
F Vergleich von Objekten Java Basics - Anfänger-Themen 2
N Vergleich findet nicht statt. Java Basics - Anfänger-Themen 13
M 2 Fragen: Vergleich, aber wie? Was passiert in diesem Teil? Java Basics - Anfänger-Themen 18
A Vergleich schlägt fehl Java Basics - Anfänger-Themen 15
G Vergleich bei MD5-Verschlüsselung Java Basics - Anfänger-Themen 3
R +1 Vergleich Java Basics - Anfänger-Themen 3
E Char vergleich Java Basics - Anfänger-Themen 7
D Vergleich von ListenElementen Java Basics - Anfänger-Themen 2
M Problem bei einem Vergleich Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben