Variable Initialisieren, aber wo?

Semptic

Mitglied
Kurze und blöde Frage:

Welche folgender Verwendungen ist sinvoller und warum?
1:
Java:
for (Iterator<Person> i = personen.iterator(); i.hasNext();) {
     Person p = i.next();
     p.tuwas();
     p.tunochwas();
}
2:
Java:
Person p;
for (Iterator<Person> i = personen.iterator(); i.hasNext();) {
     p = i.next();
     p.tuwas();
     p.tunochwas();
}
 

eRaaaa

Top Contributor
Ich wäre für
Java:
	for (Person person : personen) {
	    person.tuwas();
	    person.tunochwas();
	}

Wenn du allerdings z.B. eine spezielle Person suchst und diese auch außerhalb des Schleifen-Blockes benutzt werden soll, kommst du wohl nicht drumherum vorher eine Variable zu deklarieren (und wahrscheinlich mit null zu initialisieren)
 

Noctarius

Top Contributor
Nennt sich ForEach und stellt in Bytecode nahezu das Gleiche dar wie deine erste Variante. Ist halt hübscher und weniger Schreibarbeit aber nicht immer zu gebrauchen und erst seit Java (ähm) 1.5 dabei,
 

fastjack

Top Contributor
Wenn Du nur Listen traversierst, fährst Du mit dem HighSpeed-Idiom nach Bloch am besten :

Java:
for (int i = 0, n = personen.size(); i < n; i ++) {
     Person p = personen.get(i);
     p.tuwas();
     p.tunochwas();
}
 

andiv

Bekanntes Mitglied
Wenn Du nur Listen traversierst, fährst Du mit dem HighSpeed-Idiom nach Bloch am besten :
[...]

Woher hast du das denn? Für verkette Listen ist get(index) doch recht langsam, weil jedesmal wieder die komplette Liste durchlaufen werden muss. Die foreach-Schleife ist in den meißten Fällen der beste Weg.

und den Teil mit n = personen.size() macht man ja normalerweise auch nur, wenn der Aufruf von size() recht aufwändig ist.
 

fastjack

Top Contributor
Bloch: Effektiv Java-Programmieren

Das mit den verketteten Listen stimmt schon, ist aber auch leider die einzige Liste die performanter mit foreach läuft :autsch:

Das ist auch nur so, weil hier der Iterator schneller ist. Der Compiler baut aus dem foreach nämlich eine Iteratorschleife und die ist nunmal bei normalen Listimplementierungen teurer.
 
Zuletzt bearbeitet:

andiv

Bekanntes Mitglied
Effective Java 2nd Edition hab ich auch hier neben mir liegen, aber irgendwie finde ich den Namen "High-Speed-Idiom" hier nicht. Item 45 "Minimize the scope of local variables" sagt dass man die obere Grenze schon vorab berechnen soll wenn die Methode jedesmal das selbe Ergebnis liefern würde und Item 46 "Prefer for-each loops to traditional for loops" sagt, dass die foreach-Schleife keinen Performancenachteil hat und man sie (wenn möglich) immer der for-Schleife vorziehen sollte.
 

Semptic

Mitglied
Bei der ArrayList ist dann foreach schneller oder das umständliche mit dem iterator?

€dit: Frage wurde beantwortet bevor ich sie stellen konnte.
 
Zuletzt bearbeitet:

fastjack

Top Contributor
@Andiv Ich habe hier auf Arbeit leider nur die englische Version. Schlag mal Seite 143 auf, "High-performance idom for iterating over random access lists" ... Ich möchte meinen, in der deutschen Übersetzung wird es High - speed genannt, aber das kann auch ein Erinnerungsproblem sein ;) Der Name soll auch egal sein, denn es geht um die Programmierung der Schleife. :)

Effective Java: programming language ... - Google Bücher

Den Performancenachteil kannst Du selbst messen, bzw. anhand des Bytecodes prüfen ;)
 
Zuletzt bearbeitet:

Semptic

Mitglied
Da stellt sich für mich die Frage was heißt Random Acces?
Die Übersetzung ist klar aber nicht was es Programmiertechnisch heißt. Denn ein Zufälliger Zugriff ist für mich nicht die Liste von 0 bis ende durchzugehen sondern auf Element x zuzugreifen.
 
G

Gastredner

Gast
Listen mit wahlfreiem Zugriff - die bist also nicht gezwungen, eine Liste in einer gewissen, zumeist vorbestimmten Reihenfolge abzuarbeiten.

Ein Gegenbeispiel wäre ein Stack: Um an das dritte Element zu kommen, musst du erst die beiden vorherigen Elemente vom Stack nehmen, während du bei der Liste direkt auf das dritte Element zugreifen kannst, ohne zuvor auf die Elemente 1 und 2 zugreifen zu müssen.
 

andiv

Bekanntes Mitglied
@fastjack
Ich hab jetzt mein Exemplar gerade nicht bei mir, aber ich glaube du sprichst von der 1. Ausgabe. Zumindest dein Link verweist auf die 1. Ausgabe. Ich meine die Sätze mit dem High-Speed hat Joshua Block nicht in die 2. Ausgabe übernommen, eben weil die foreach-Schleife keinen Performancenachteil gegenüber der klassischen for-Schleife hat.
 

fastjack

Top Contributor
@andiv

eben weil die foreach-Schleife keinen Performancenachteil gegenüber der klassischen for-Schleife hat

Das ist leider nicht ganz korrekt. Probiers einfach selbst mal für eine ArrayList aus ;) Aus dem Bytecode wirst Du erkennen, das der Compiler aus dem foreach immer ein Iterator-Konstrukt erzeugt. Aus der High-Speed-Schleife aber nicht, das ist der Clou. Der Iterator ist zumindest in allen Fällen, in denen die Liste auf einer Array-Repräsentation beruht, langsamer :) Wie gesagt, ich spreche hier nur für die Fälle, in denen einfach nur traversiert wird. Bei der LinkedList hast Du vollkommen recht.
 

andiv

Bekanntes Mitglied
Okay, das glaube ich dir. Ich wundere mich dann trotzdem warum Joshua Bloch diese Bemerkung in der zweiten Ausgabe herausgenommen hat und schreibt, dass man die foreach-Schleife ohne Performanceverlust verwenden kann. Wahrscheinlich weil der Performancevorteil durch das High-Speed-Idiom in fast allen Fällen vernachlässigbar klein ist oder zumindest nicht den eigentlichen Flaschenhals darstellt.

Optimize?
1. Don't do it.
2. (for experts only) Don't do it yet.
 

fastjack

Top Contributor
Warum er das schreibt? K.A. Aber es schreiben immer wieder mal Leute irgendetwas um einen Hype zu fördern, der keiner ist :bae: Da ist oder war man auch bei SUN nicht sicher.
Bei größeren Listen liegt der Performanceverlust durchaus im spürbaren Bereich. Auch an kritischen Stellen, die immer wieder mal öfters durchwandert werden müssen.
 

mvitz

Top Contributor
Also in Bloch 2nd Edition steht sogar explizit:

Item 46: Prefer for-each loops to traditional for loops (Page. 212)
Note that there is no performance penalty for using the for-each loop, even for arrays. In fact, it may offer a slight performance advantage over an ordinary for loop in some circumstances, as it computes the limit of the array index only once. While you can do this by hand (Item 45), programmers don't always do so.

Ich weiß, dass man nicht immer alles direkt so glauben soll, aber Bloch hat nun mal extrem Ahnung von Java...
 
S

SlaterB

Gast
Bei größeren Listen liegt der Performanceverlust durchaus im spürbaren Bereich. Auch an kritischen Stellen, die immer wieder mal öfters durchwandert werden müssen.

wenn man wirklich so große Listen so oft durchläuft, ist es fast schon schlauer, die Daten in eine LinkedList zu kopieren,
dann ist man mit einem Iterator, etwa dem for-each-Konstrukt, wiederum schneller,

oder als Zwischenlösung direkt mit einem Array arbeiten
 

fastjack

Top Contributor
oder als Zwischenlösung direkt mit einem Array arbeiten
@SlaterB worauf basiert denn die ArrayList ?

Eigentlich benötigt man nicht mal große Listen. Es reichen schon Stellen aus, die mehrere Male angesprochen werden, z.B. Servermethoden und Ähnliches, oder halt zentrale Stellen. Selbst ein kleiner Performanceverlust kann sich dort ganz schnell summieren, oder nicht ?
Und warum soll man das foreach überall nutzen, wenn es nicht überall performant läuft? Es gibt dazu viele Diskussionen, u.a. auf StackOverflow. Es ist auch belegt, das der Iterator nicht auf jeder Datenstruktur performanter läuft als die Schleife, das sollte auch klar sein.
Ich denke es kommt sehr genau auf den Fall an, wo man foreach nutzen sollte und wo nicht. Aber generell zu behaupten, alles sollte mit foreach behandelt werden, halte ich für sehr gewagt. Blochs 2nd Edition in Ehren, aber foreach ist leider nicht das Allheilmittel ;)
 
S

SlaterB

Gast
> @SlaterB worauf basiert denn die ArrayList ?

ja und worauf basiert der Iterator?

wenn dir der zuviel Overhead ist, dann ist meine Aussage dass die Liste selber auch zuviel Overhead ist, wenn dann mit Array arbeiten
(und dann natürlich auch eine for i-Schleife, nicht Iterator über Array ;) )

foreach ist fast genau so ein Allheilmittel wie Strings für Text,
dass man in Extremsituationen lieber mit char[] spart ist eher ein Nebenpunkt

viel spannender finde ich dagegen den fehlenden Index bei foreach, wenn man i braucht kommt man an einer for-Schleife kaum vorbei
 
B

bygones

Gast
@SlaterB worauf basiert denn die ArrayList ?
Arraylist macht nur ein bisschen mehr magic noch als ein 0815 Array

Ich denke es kommt sehr genau auf den Fall an, wo man foreach nutzen sollte und wo nicht. Aber generell zu behaupten, alles sollte mit foreach behandelt werden, halte ich für sehr gewagt. Blochs 2nd Edition in Ehren, aber foreach ist leider nicht das Allheilmittel ;)
und zu 99,999999% ist Performance ziemlich wurscht bzw "performantes Programmieren" eher unguenstig. Die generelle Behauptung foreach vorzuziehen ist schon richtig
 

FArt

Top Contributor
Nachdem ich in der Regel nichts über die Implementierungsdetails der Liste wissen möchte, würde ich immer den Iterator vorziehen. Ich gehe davon aus, dass die Listenimplementierung ihren Iterator sinnvoll (=performant) implementiert hat, also z.B. bei einer indexbasierten Liste durch hochzählen des Index und bei einer sequentiellen Liste durch Navigation zum nächsten Element.
 

fastjack

Top Contributor
SlaterB hat gesagt.:
viel spannender finde ich dagegen den fehlenden Index bei foreach, wenn man i braucht kommt man an einer for-Schleife kaum vorbe

Das stimmt und ich werfe noch ein paar Kohlen ins Feuer gggg :

* Kein Zugriff auf den Iterator.
* Kein Offset möglich.
* Nicht rückwärts von hinten nach vorne laufen. Ein netter Trick, um Elemente aus der zu traversierenden Liste zu entfernen,
* Kein Überspringen von Elementen. (O.k. continue geht, aber nicht i+=4 etc.)
* Mit einem Index lassen sich nicht gleichzeitig zwei Datenstrukturen durchlaufen.
* Liste nicht modifizierbar.

@rambozola löl zurück ;) Das hat ThreadPool bereits getan

http://www.java-forum.org/java-basics-anfaenger-themen/88698-each-loop.html

Erklär doch mal, warum es so ist :applaus:
 
Zuletzt bearbeitet:
B

bygones

Gast
Das ist doch wohl nicht Dein Ernst oder ?
freilich, vielleicht eine 9 hinten ist uebertrieben ;-)

lass mich vll die Aussage anders formulieren:

zu 99,99999% wird unter dem faelschlichen Vorwand von Performance ein uebler, mieser und schlechter code produziert.

wenn jemand lust hat kann er die ueblichen "performance-zitate" anbringen.

bygones

BTT
 

mvitz

Top Contributor
Das stimmt und ich werfe noch ein paar Kohlen ins Feuer gggg :

* Kein Zugriff auf den Iterator.
* Kein Offset möglich.
* Nicht rückwärts von hinten nach vorne laufen. Ein netter Trick, um Elemente aus der zu traversierenden Liste zu entfernen,
* Kein Überspringen von Elementen. (O.k. continue geht, aber nicht i+=4 etc.)
* Mit einem Index lassen sich nicht gleichzeitig zwei Datenstrukturen durchlaufen.
* Liste nicht modifizierbar.

@rambozola löl zurück ;) Das ThreadPool bereits getan

http://www.java-forum.org/java-basics-anfaenger-themen/88698-each-loop.html

Naja. die Kohlen ins Feuer... bisher bezog sich die Diskussion ausschließlich über das Komplette iterieren einer Liste. Deine Fälle sind allesamt eher spezielle Fälle, bei denen man um eine normale for-Schleife nicht herum kommt. Insofern ist das hier nicht relevant. Ansonsten kann ich bygones und SlaterB nur zustimmen.
 

fastjack

Top Contributor
Das schreibst Du sehr schön. Ich hatte auch nur geschrieben daß man den Einsatz des foreach nicht pauschalisieren sollte und sich dessen Performanceverlust vor Augen halten sollte, mehr war eigentlich nicht gemeint.
 

fastjack

Top Contributor
Ich mache keine Witze. Mach doch einfach mal selber nen Performancetest ;) Wenn Du Hilfe dabei brauchst, sag einfach Bescheid.

Verschiedene Listen mit verschiedenen Schleifenarten durchgehen. Zeiten messen, vergleichen.
Java 5 oder 6, Win oder Linux spielt keine Rolle. Du solltest mehr als 1 bis 10 Elemente nehmen und die Tests öfters wiederholen. Wenn Du es drauf hast, Bytecode vergleichen und festellen warum es Unterschiede gibt :)

P.S.: Gibt es einen besonderen Grund, weshalb der Link in Deiner Signatur nicht geht, oder ist das ein Witz? :bae:
 
Zuletzt bearbeitet:

rambozola

Bekanntes Mitglied
Ich mache keine Witze. Mach doch einfach mal selber nen Performancetest ;) Wenn Du Hilfe dabei brauchst, sag einfach Bescheid.
Au ja den Test will ich sehen, hilf mir bitte.

P.S.: Gibt es einen besonderen Grund, weshalb der Link in Deiner Signatur nicht geht, oder ist das ein Witz? :bae:
Du redest gerade mit einem Bugmenot Account, keine Ahnung wer den Link in die Signatur geschrieben hat. Immerhin ist der Account auch schon ein bisschen älter als deiner...
 

fastjack

Top Contributor
rambozola hat gesagt.:
Du redest gerade mit einem Bugmenot Account, keine Ahnung wer den Link in die Signatur geschrieben hat. Immerhin ist der Account auch schon ein bisschen älter als deiner...

Wenigstens bist Du noch Herr der Dinge ....

rambozola hat gesagt.:
... hilf mir bitte.

Hab ich mir schon fast gedacht.

Füll einfach Deine Implementierung in diesen Rahmen:

Java:
public class Test {
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
L Variable in If-Statement initialisieren Java Basics - Anfänger-Themen 4
B Rekursion - Variable initialisieren Java Basics - Anfänger-Themen 2
T Variable deklarieren, ohne zu initialisieren... Java Basics - Anfänger-Themen 3
N Mit Kontrukor der Oberklasse lokale Variable initialisieren Java Basics - Anfänger-Themen 2
K Datentypen Globale Variable direkt initialisieren oder im Konstruktor? Java Basics - Anfänger-Themen 13
B Variable mit Methode initialisieren Java Basics - Anfänger-Themen 11
A char variable deklarieren und nicht initialisieren Java Basics - Anfänger-Themen 10
S statische variable initialisieren mit exception Java Basics - Anfänger-Themen 2
O Variable Zimmergrößen per scanner einlesen Java Basics - Anfänger-Themen 5
richis-fragen String("AT") als StringObject-Variable deklarieren Java Basics - Anfänger-Themen 14
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste in Variable speichern Java Basics - Anfänger-Themen 6
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
E Variable von 1. Fenster an 2. Fenster übergeben. Java Basics - Anfänger-Themen 7
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
T Datum als Variable wert Java Basics - Anfänger-Themen 4
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
R Compiler-Fehler Variable wird nicht gefunden bzw. erkannt? Java Basics - Anfänger-Themen 2
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
M variable in anderer funktion aufrufen Java Basics - Anfänger-Themen 10
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
U Wie mache ich die Variable xyz eindeutig/unique? Java Basics - Anfänger-Themen 20
JordenJost char variable funktioniert irgendwie nicht a+b ergibt nicht à Java Basics - Anfänger-Themen 4
M Variable Felderanzahl Java Java Basics - Anfänger-Themen 10
T Variable durch Action Listener ändern Java Basics - Anfänger-Themen 2
stormyark Fehler beim überschreiben einer Variable Java Basics - Anfänger-Themen 1
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
W Schleife und einmal variable++ zu viel Java Basics - Anfänger-Themen 20
M String mit Variable vergleichen Java Basics - Anfänger-Themen 9
M Methoden Wert einer Variable geht verloren? Java Basics - Anfänger-Themen 6
G variable kopieren bzw. woanders benutzen Java Basics - Anfänger-Themen 6
Ameise04 Variablen Inhalt einer Variable im Code verwenden? Java Basics - Anfänger-Themen 9
J Double Variable und Addition Java Basics - Anfänger-Themen 2
I Variable innerhalb Methode: Local variable test defined in an enclosing scope must be final or effectively final Java Basics - Anfänger-Themen 3
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
H Datentypen Wertebereich von <Klassenname> <Variable> Java Basics - Anfänger-Themen 12
M Private Variable Java Basics - Anfänger-Themen 2
idontknow707 Matrix nach z.B. Variable durchsuchen Java Basics - Anfänger-Themen 4
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
s.marcii Modulo in der Variable einsetzen - ist das möglich? Java Basics - Anfänger-Themen 2
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
Y Wie kann ich die Variable in der Try Catch returnen? Java Basics - Anfänger-Themen 3
K Übergabe des Wertes einer Variable aus main() in eine Klassenmethode Java Basics - Anfänger-Themen 8
B Inkrement von Variable Java Basics - Anfänger-Themen 8
V Variablen statische Variable einer Objektvariable zuordnen Java Basics - Anfänger-Themen 3
L Variable von einer Methode zu einer anderen Methode inkl. einer "Zwischenmethode" Java Basics - Anfänger-Themen 1
J JTextField Bezeichnung als Variable Java Basics - Anfänger-Themen 3
N Wie kann ich eine meine Variable Final machen? Java Basics - Anfänger-Themen 1
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
H Variable um 1 erhört ausgeben Java Basics - Anfänger-Themen 4
V Erste Schritte Eine Array-Variable mit Benutzereingaben befüllen Java Basics - Anfänger-Themen 3
J Fehlermeldung unklar. non-static variable player0 cannot be referenced from a static context Java Basics - Anfänger-Themen 4
P non-static variable cannot be referenced from a static context Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
W Problem mit dem Wert von boolean-Variable Java Basics - Anfänger-Themen 3
M Input/Output JTextField Eingabe in String Variable speichern Java Basics - Anfänger-Themen 15
A Kann man eine Methode als Variable speichern und danach noch verändern? Java Basics - Anfänger-Themen 6
L cannot find symbol variable Kon Java Basics - Anfänger-Themen 8
C Statischer Typ aber Variable nicht statisch? Java Basics - Anfänger-Themen 5
H Variable.methode aufstellen, verstehen Java Basics - Anfänger-Themen 2
R Warnung, wenn eine Variable eingegeben wird Java Basics - Anfänger-Themen 6
S Variable einscannen Java Basics - Anfänger-Themen 30
N Best Practice Rückgabe eines Terminal Befehls in eine Variable speichern Java Basics - Anfänger-Themen 27
M Erste Schritte Mit Variable verschiedene Texte in Textfeld einfügen Java Basics - Anfänger-Themen 27
J Input-Variable nicht sichtbar Java Basics - Anfänger-Themen 2
L Warum ist Variable null? Java Basics - Anfänger-Themen 3
E Variable (Vektor) in andere Methode übergeben Java Basics - Anfänger-Themen 4
A OOP Variable in anderer Klasse durch Methode aufrufen und einer anderen Variable gleichsetzen Java Basics - Anfänger-Themen 2
S Variable Parameter Java Basics - Anfänger-Themen 5
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
P if - Statement erkennt variable nicht. Java Basics - Anfänger-Themen 12
J Ungewollte Wertveränderung einer Variable Java Basics - Anfänger-Themen 9
R Variablen Variable an FXML-Controller übergeben Java Basics - Anfänger-Themen 4
J Zugriff auf Variable in anderem Programm Java Basics - Anfänger-Themen 5
R variable istpositiv might not have been initialized Java Basics - Anfänger-Themen 2
A Methodenname aus variable Java Basics - Anfänger-Themen 2
L Variable aus einer Klasse in einer anderen Klasse nutzen Java Basics - Anfänger-Themen 6
P Methode soll Variable einer anderen Klasse ändern. Wie? Java Basics - Anfänger-Themen 1
Hanschyo Variable nicht initialisiert Java Basics - Anfänger-Themen 6
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C return kann nicht auf variable zugreifen Java Basics - Anfänger-Themen 26
S Wie erstelle ich eine Vorbedingung für eine Variable einer Methode ? Java Basics - Anfänger-Themen 5
S Warum kann ich nicht mehr als eine Variable in einer for Schleife deklarieren ? Java Basics - Anfänger-Themen 1
V Warum speichert meine String-Variable nummerische Werte? Java Basics - Anfänger-Themen 3
J Wert eines Arrays einer Variable zuweisen, sobald der Wert eines anderen Arrays eintritt Java Basics - Anfänger-Themen 2
DaCrazyJavaExpert Compiler-Fehler Variable nicht mit null initialisiert, trotzdem: NullPointerException Java Basics - Anfänger-Themen 28
A Erste Schritte Mein Programm erkennt die variable EinAus.readInt nicht Java Basics - Anfänger-Themen 15
Aprendiendo [JAVA-Syntax] (int... variable) bei einem Konstruktor Java Basics - Anfänger-Themen 8
F Variablen If else: Einer Variable einen Wert hinzufügen oder so? Java Basics - Anfänger-Themen 6
Aprendiendo Interpreter-Fehler "non-static variable this cannot be referenced from a static context" Java Basics - Anfänger-Themen 2
D Aufruf einer statischen Variable Java Basics - Anfänger-Themen 1
F [OOP] Auf eine Variable aus meherer Klassen zugreifen Java Basics - Anfänger-Themen 22
D Einer Variable automatisch Zahlen hinzuaadieren Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben