Compare commits
No commits in common. "main" and "main" have entirely different histories.
|
|
@ -1,6 +1,6 @@
|
||||||
# Abstrakte Klassen
|
# Abstrakte Klassen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine abstrakte Klasse einsetzen, um eine einheitliche Schnittstelle für unterschiedliche Klassen anzubieten.
|
Eine abstrakte Klasse einsetzen, um eine einheitliche Schnittstelle für unterschiedliche Klassen anzubieten.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Abstrakte Klasse
|
# Abstrakte Klasse
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Abstrakte Klasse verwenden.
|
Abstrakte Klasse verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# String in Großbuchstaben umwandeln
|
# String in Großbuchstaben umwandeln
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
* Daten von der Kommandozeile lesen.
|
* Daten von der Kommandozeile lesen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Labeled Break
|
# Labeled Break
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein labeled break verwenden.
|
Ein labeled break verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Passwortbewertung
|
# Passwortbewertung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einfache String-Verarbeitung.
|
Einfache String-Verarbeitung.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# printf mit Formatstring
|
# printf mit Formatstring
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Formatierung mit Formatstrings.
|
Formatierung mit Formatstrings.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Maximum in einem Array suchen
|
# Maximum in einem Array suchen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Über Arrays iterieren.
|
Über Arrays iterieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Taschenrechner
|
# Taschenrechner
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`case` verwenden.
|
`case` verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Ausnahmen testen
|
# Ausnahmen testen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Bei einer gegebenen Klasse Testfälle mit JUnit schreiben, die auf das Werfen von Ausnahmen testen.
|
Bei einer gegebenen Klasse Testfälle mit JUnit schreiben, die auf das Werfen von Ausnahmen testen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
|
# Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ausnahmen programmieren und sinnvoll einsetzen. Bedeutung der Schlüsselwörter `throws` und `throw` verstehen.
|
Ausnahmen programmieren und sinnvoll einsetzen. Bedeutung der Schlüsselwörter `throws` und `throw` verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Exception schreiben
|
# Eigene Exception schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eigene Exceptions entwerfen und verwenden.
|
Eigene Exceptions entwerfen und verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Handle-or-Declare-Regel anwenden
|
# Handle-or-Declare-Regel anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
In einem vorhandenen Programm die Ausnahmen korrekt weiter deklarieren und an den richtigen Stellen fangen.
|
In einem vorhandenen Programm die Ausnahmen korrekt weiter deklarieren und an den richtigen Stellen fangen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Ausnahmen mit `try` und `catch` behandeln.
|
# Ausnahmen mit `try` und `catch` behandeln.
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vorhandene Ausnahmen mit `try` und `catch` abfangen und behandeln.
|
Vorhandene Ausnahmen mit `try` und `catch` abfangen und behandeln.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Iterator schreiben
|
# Iterator schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Für eine gegebene Klasse einen Iterator schreiben.
|
Für eine gegebene Klasse einen Iterator schreiben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Iterator programmieren
|
# Iterator programmieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Iteratoren verstehen und programmieren.
|
Iteratoren verstehen und programmieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `List<T>` und dessen Implementierungen
|
# `List<T>` und dessen Implementierungen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `List<T>` und eine passende Implementierung einsetzen.
|
Das Interface `List<T>` und eine passende Implementierung einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `Map<T>` verwenden
|
# `Map<T>` verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `Map<T>` und seine Implementierungen verwenden, um Daten effizient zu verarbeiten.
|
Das Interface `Map<T>` und seine Implementierungen verwenden, um Daten effizient zu verarbeiten.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# ReverserGeneric
|
# ReverserGeneric
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`Comparable` verstehen und nutzen.
|
`Comparable` verstehen und nutzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Strings umgekehrt sortieren: Reverser
|
# Strings umgekehrt sortieren: Reverser
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`Comparable` verstehen und nutzen.
|
`Comparable` verstehen und nutzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `Set<T>` und dessen Implementierungen
|
# `Set<T>` und dessen Implementierungen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Interface `Set<T>` und eine passende Implementierung einsetzen.
|
Das Interface `Set<T>` und eine passende Implementierung einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# CommandLineSorter
|
# CommandLineSorter
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sortieren von Collections.
|
Sortieren von Collections.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# CommandLineSorter -- Version 2
|
# CommandLineSorter -- Version 2
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sortieren von Collections.
|
Sortieren von Collections.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `Comparator<T>` verwenden und Objekte sortieren
|
# `Comparator<T>` verwenden und Objekte sortieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Verschiedene Sortierreihenfolgen durch die Implementierung von `Comparator<T>` realisieren.
|
Verschiedene Sortierreihenfolgen durch die Implementierung von `Comparator<T>` realisieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Wörterbuchprogramm
|
# Wörterbuchprogramm
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Interface `Map` und seine Implementierungen einsetzen.
|
Interface `Map` und seine Implementierungen einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Java-Coding-Standard anwenden
|
# Java-Coding-Standard anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Java-Code korrekt entsprechend dem [Coding-Standard von Oracle](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) formatieren.
|
Java-Code korrekt entsprechend dem [Coding-Standard von Oracle](http://www.oracle.com/technetwork/java/codeconventions-150003.pdf) formatieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# JavaDoc schreiben
|
# JavaDoc schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine vorhandene Klasse mit korrekten JavaDoc-Kommentaren versehen.
|
Eine vorhandene Klasse mit korrekten JavaDoc-Kommentaren versehen.
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
# Klasse mit JUnit testen
|
# Klasse mit JUnit testen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen JUnit-Test für eine gegebene Klasse schreiben.
|
Einen JUnit-Test für eine gegebene Klasse schreiben.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.intro.junit_factorial](../sources/src/main/java/pr2/intro/junit_factorial/).
|
Gehen Sie in das Paket [pr2.intro.junit_faculty](../sources/src/main/java/pr2/intro/junit_faculty/).
|
||||||
|
|
||||||
Schreiben Sie bitte einen JUnit-Test für folgende Klasse `Fakultaet`, der die Funktionalität der Methode `fact` testet. Denken Sie insbesondere daran, die Randfälle zu testen.
|
Schreiben Sie bitte einen JUnit-Test für folgende Klasse `Fakultaet`, der die Funktionalität der Methode `fact` testet. Denken Sie insbesondere daran, die Randfälle zu testen.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Lösung: Klasse mit JUnit testen
|
# Lösung: Klasse mit JUnit testen
|
||||||
|
|
||||||
|
|
||||||
Gehen Sie in das Paket [pr2.intro.junit_factorials](../../solutions/src/main/java/pr2/intro/junit_factorial/).
|
Gehen Sie in das Paket [pr2.intro.junit_faculty](../../solutions/src/main/java/pr2/intro/junit_faculty/).
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Eigene Enumeration schreiben und verwenden
|
# Eigene Enumeration schreiben und verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Enumeration schreiben
|
# Enumeration schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
Eine einfache Enumeration (ohne abstrakte Methoden) erstellen und in einem kleinen Programm einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Singleton-Eigenschaft von Enumerationen
|
# Singleton-Eigenschaft von Enumerationen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Singleton-Eigenschaft von Enumerationen verstehen.
|
Die Singleton-Eigenschaft von Enumerationen verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Assignment: Stein, Papier, Schere, Echse, Spock
|
# Assignment: Stein, Papier, Schere, Echse, Spock
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Mit Enumerationen arbeiten.
|
Mit Enumerationen arbeiten.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Einen generischen Typ schreiben
|
# Einen generischen Typ schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen vorhandenen Typ so umgestalten, dass er als generischer Typ verwendet werden kann.
|
Einen vorhandenen Typ so umgestalten, dass er als generischer Typ verwendet werden kann.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair schreiben
|
# Generische Klasse Pair schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair erweitern: NumberPair
|
# Generische Klasse Pair erweitern: NumberPair
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Klasse Pair erweitern: SamePair
|
# Generische Klasse Pair erweitern: SamePair
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Von einem generischen Typ erben.
|
Von einem generischen Typ erben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# PairList
|
# PairList
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Sammlungen von Objekten eines generischen Typs erstellen.
|
Sammlungen von Objekten eines generischen Typs erstellen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Wildcard benutzen
|
# Wildcard benutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wildcards einsetzen.
|
Wildcards einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Queue
|
# Generische Queue
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen komplexeren generischen Typ entwickeln.
|
Einen komplexeren generischen Typ entwickeln.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `super` und `extends` einsetzen
|
# `super` und `extends` einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Methoden unter Verwendung von `super` und `extends` gestalten, sodass sie flexibel auch mit Sub- bzw. Supertypen umgehen können.
|
Methoden unter Verwendung von `super` und `extends` gestalten, sodass sie flexibel auch mit Sub- bzw. Supertypen umgehen können.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Generische Typen zusammen mit Wildcards einsetzen
|
# Generische Typen zusammen mit Wildcards einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Gebundene und ungebundene Wildcards einsetzen.
|
Gebundene und ungebundene Wildcards einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# MatrixSuche
|
# MatrixSuche
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Statische innere Klassen einsetzen.
|
Statische innere Klassen einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Innere Klasse Beobachter
|
# Innere Klasse Beobachter
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Zugriff von inneren Klassen auf die umgebende Klasse.
|
Zugriff von inneren Klassen auf die umgebende Klasse.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Callback mit anonymer Klasse realisieren
|
# Callback mit anonymer Klasse realisieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als anonyme innere Klasse realisiert.
|
Eine gegebene Funktion durch einen Callback parametrieren. Der Callback wird als anonyme innere Klasse realisiert.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `BufferedReader` zum zeilenweisen Lesen einsetzen
|
# `BufferedReader` zum zeilenweisen Lesen einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten Zeilenweise mit einem `BufferedReader` verwenden und dabei das Decorator Pattern einsetzen.
|
Daten Zeilenweise mit einem `BufferedReader` verwenden und dabei das Decorator Pattern einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# DataOutputStream
|
# DataOutputStream
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten mit einem `DataOutputStreams` manuell serialisieren.
|
Daten mit einem `DataOutputStreams` manuell serialisieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# DataOutputStream durch Serialisierung ersetzen
|
# DataOutputStream durch Serialisierung ersetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten mit einem `ObjectOutputStreams` serialisieren.
|
Daten mit einem `ObjectOutputStreams` serialisieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit `DataOutputStream` und `DataInputStream` verarbeiten
|
# Daten mit `DataOutputStream` und `DataInputStream` verarbeiten
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein eigenes Format für die Daten einer Klasse definieren und diese Dann in einer Datei speichern und aus dieser wieder laden.
|
Ein eigenes Format für die Daten einer Klasse definieren und diese Dann in einer Datei speichern und aus dieser wieder laden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit einem `InputStream` lesen
|
# Daten mit einem `InputStream` lesen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen `InputStream` benutzen, um Daten aus einer Datei zu lesen.
|
Einen `InputStream` benutzen, um Daten aus einer Datei zu lesen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Daten mit einem `OutputStream` schreiben
|
# Daten mit einem `OutputStream` schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen `OutputStream` verwenden, um Daten zu schreiben.
|
Einen `OutputStream` verwenden, um Daten zu schreiben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Filesystem-Abstraktion mit `File`
|
# Filesystem-Abstraktion mit `File`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Klasse `Path` einsetzen, um plattformunabhängig Operationen auf dem Dateisystem durchzuführen.
|
Die Klasse `Path` einsetzen, um plattformunabhängig Operationen auf dem Dateisystem durchzuführen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Fileattribute lesen
|
# Fileattribute lesen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Methoden der Klassen `Path` und `Files` nutzen und verstehen.
|
Methoden der Klassen `Path` und `Files` nutzen und verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `FilterReader`
|
# `FilterReader`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einen eigenen Filter in Form eines `FilterReaders` programmieren und hiermit in den Datenstrom eingreifen.
|
Einen eigenen Filter in Form eines `FilterReaders` programmieren und hiermit in den Datenstrom eingreifen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Konsolen Input/Output
|
# Konsolen Input/Output
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten von der Konsole lesen und über eine Ausgabeumlenkung in eine Datei umlenken. `PrintStream` und `InputStreamReader` einsetzen.
|
Daten von der Konsole lesen und über eine Ausgabeumlenkung in eine Datei umlenken. `PrintStream` und `InputStreamReader` einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Zeilen einer Textdatei zählen
|
# Zeilen einer Textdatei zählen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Dateien zeilenweise lesen und verarbeiten.
|
Dateien zeilenweise lesen und verarbeiten.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `RandomAccessFile`
|
# `RandomAccessFile`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
`RandomAccessFile` sowohl zum Lesen, als auch zum Schreiben von Daten einsetzen. Verstehen, dass man sich wahlfrei durch die Datei bewegen kann.
|
`RandomAccessFile` sowohl zum Lesen, als auch zum Schreiben von Daten einsetzen. Verstehen, dass man sich wahlfrei durch die Datei bewegen kann.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `Reader` verwenden
|
# `Reader` verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Textdaten mithilfe von `Reader` verarbeiten.
|
Textdaten mithilfe von `Reader` verarbeiten.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Rot13-Verschlüsselung
|
# Rot13-Verschlüsselung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionsweise und Einsatz von Filtern.
|
Funktionsweise und Einsatz von Filtern.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Datei zerhacken
|
# Datei zerhacken
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Daten byteweise aus einem Stream lesen.
|
Daten byteweise aus einem Stream lesen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Serialisierung
|
# Serialisierung
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Serialisierung einsetzen können, um Objekte zu persistieren und wieder zu laden.
|
Serialisierung einsetzen können, um Objekte zu persistieren und wieder zu laden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Comparable implementieren
|
# Comparable implementieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klasse "comparable" machen.
|
Klasse "comparable" machen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Interface Stack entwerfen
|
# Interface Stack entwerfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein Interface entwerfen und dieses dann implementieren.
|
Ein Interface entwerfen und dieses dann implementieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Interface: Uebersetzer
|
# Interface: Uebersetzer
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein Interface implementieren.
|
Ein Interface implementieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Interfaces anwenden und entwerfen
|
# Interfaces anwenden und entwerfen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Ein vorhandenes Interface implementieren und ein eigenes Interface programmieren. Klassen schreiben, die mehrere Interfaces implementieren. Die Kollision von gleichnamigen Interface-Methoden und deren Konsequenzen verstehen.
|
Ein vorhandenes Interface implementieren und ein eigenes Interface programmieren. Klassen schreiben, die mehrere Interfaces implementieren. Die Kollision von gleichnamigen Interface-Methoden und deren Konsequenzen verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# StringTransmogrifier
|
# StringTransmogrifier
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionale Interfaces entwerfen und verwenden.
|
Funktionale Interfaces entwerfen und verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# StringTransmogrifier erweitern
|
# StringTransmogrifier erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Funktionale Interfaces entwerfen und verwenden.
|
Funktionale Interfaces entwerfen und verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Deep-Copy mit `clone()`
|
# Deep-Copy mit `clone()`
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Clone
|
# Clone
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
Den Nutzen der `clone()`-Methode verstehen und diese richtig einsetzen. Eine eigene `clone()`-Methode schreiben und eine tiefe Kopie durchführen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `equals()` und `hashCode()` implementieren und nutzen
|
# `equals()` und `hashCode()` implementieren und nutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# equals und hashCode
|
# equals und hashCode
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
Die Methoden `equals()` und `hashCode()` der Klasse `Object` korrekt überschreiben und nutzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# `toString()`-Methode implementieren
|
# `toString()`-Methode implementieren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klassen mit einer `toString()`-Methode versehen und diese gegenseitig nutzen.
|
Klassen mit einer `toString()`-Methode versehen und diese gegenseitig nutzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Optimierung bei Integer
|
# Optimierung bei Integer
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wrapper-Klassen und deren Optimierungen verstehen.
|
Wrapper-Klassen und deren Optimierungen verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Methoden der Wrapper-Klassen
|
# Methoden der Wrapper-Klassen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Wrapper-Klassen nutzen, um Zahlen umzuwandeln.
|
Wrapper-Klassen nutzen, um Zahlen umzuwandeln.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
# Lösung: Klasse per Reflection analysieren
|
|
||||||
|
|
||||||
Musterlösung:
|
|
||||||
|
|
||||||
[pr2.reflection.analyzer](../../solutions/src/main/java/pr2/reflection/analyzer/)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
# Lösung: Objekte per Reflection erzeugen
|
|
||||||
|
|
||||||
Musterlösung:
|
|
||||||
|
|
||||||
[pr2.reflection.reflector](../../solutions/src/main/java/pr2/reflection/reflector/)
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
# Information-Hiding einer Klasse verbessern
|
# Information-Hiding einer Klasse verbessern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Bei einer vorhandenen Klasse Information Hiding verbessern und Seiteneffekte reduzieren.
|
Bei einer vorhandenen Klasse Information Hiding verbessern und Seiteneffekte reduzieren.
|
||||||
|
|
||||||
## Aufgabe
|
## Aufgabe
|
||||||
|
|
||||||
Im Paket [pr2.strukturierung.information_hiding](../sources/src/main/java/pr2/strukturierung/information_hiding/) finden Sie eine Klasse namens `Rechner`, die eine sehr einfachen Taschenrechner repräsentiert. Außerdem finden Sie einen passenden JUnit-Test `RechnerTest`, der die Funktionsweise des Taschenrechners demonstriert -- [pr2.strukturierung.information_hiding.test](../sources/src/test/java/pr2/strukturierung/information_hiding/test/).
|
Im Paket [pr2.strukturierung.information_hiding](../sources/src/main/java/pr2/strukturierung/information_hiding/) finden Sie eine Klasse namens `Rechner`, die eine sehr einfachen Taschenrechner repräsentiert. Außerdem finden Sie einen passenden JUnit-Test `RechnerTest`, der die Funktionsweise des Taschenrechners demonstriert.
|
||||||
|
|
||||||
Führen Sie den JUnit-Test aus und vergewissern Sie sich, dass der Taschenrechner korrekt funktioniert.
|
Führen Sie den JUnit-Test aus und vergewissern Sie sich, dass der Taschenrechner korrekt funktioniert.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Vorhandene Bibliotheken als JAR einbinden
|
# Vorhandene Bibliotheken als JAR einbinden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine vorhandene Bibliothek in einem Projekt verwenden und hierzu ein JAR einbinden.
|
Eine vorhandene Bibliothek in einem Projekt verwenden und hierzu ein JAR einbinden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Fakultät parallel berechnen
|
# Fakultät parallel berechnen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Berechnungen parallelisieren.
|
Berechnungen parallelisieren.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Thread per interrupt beenden
|
# Thread per interrupt beenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Threads kontrolliert beenden.
|
Threads kontrolliert beenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# wait und notify benutzen
|
# wait und notify benutzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Thread-Koordination über Condition-Variablen.
|
Thread-Koordination über Condition-Variablen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Parallele Ausgaben erzeugen
|
# Parallele Ausgaben erzeugen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Erste Schritte mit Threads.
|
Erste Schritte mit Threads.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Race-Condition finden und beheben
|
# Race-Condition finden und beheben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
In einem gegebenen Programm Race-Conditions finden und durch den Einsatz von kritischen Abschnitten beheben.
|
In einem gegebenen Programm Race-Conditions finden und durch den Einsatz von kritischen Abschnitten beheben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Stack und Heap unterscheiden
|
# Stack und Heap unterscheiden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Unterschied zwischen Stack und Heap bei parallelen Programmen verstehen.
|
Unterschied zwischen Stack und Heap bei parallelen Programmen verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# synchronized verwenden
|
# synchronized verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Schlüsselwort `synchronized` verwenden.
|
Schlüsselwort `synchronized` verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Timer und TimerTask verwenden
|
# Timer und TimerTask verwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Klassen aus `java.util.concurrent` verwenden.
|
Klassen aus `java.util.concurrent` verwenden.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Final anwenden
|
# Final anwenden
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Schlüsselwort `final` in seinen verschiedenen Bedeutungen kennenlernen und syntaktisch an die richtigen Stellen schreiben.
|
Das Schlüsselwort `final` in seinen verschiedenen Bedeutungen kennenlernen und syntaktisch an die richtigen Stellen schreiben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur und Rechteck
|
# Figur und Rechteck
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur erweitern
|
# Figur erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Figur noch einmal erweitern
|
# Figur noch einmal erweitern
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Vererbung sinnvoll einsetzen.
|
Vererbung sinnvoll einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Konstruktoren schreiben
|
# Konstruktoren schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Für eine vorhandene Klasse Konstruktoren schreiben und Konstruktoren sich gegenseitig und auch Konstruktoren der Superklasse aufrufen lassen.
|
Für eine vorhandene Klasse Konstruktoren schreiben und Konstruktoren sich gegenseitig und auch Konstruktoren der Superklasse aufrufen lassen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Polymorphie einsetzen
|
# Polymorphie einsetzen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Durch Polymorphie Subklassen wie Basisklassen behandeln können.
|
Durch Polymorphie Subklassen wie Basisklassen behandeln können.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Singleton
|
# Singleton
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Das Design-Pattern _Singleton_ einsetzen.
|
Das Design-Pattern _Singleton_ einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Statische Methoden und Attribute
|
# Statische Methoden und Attribute
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine Klasse mit statischen Attributen und Methoden entwickeln und die Unterschiede zu normalen Methoden und Attributen verstehen.
|
Eine Klasse mit statischen Attributen und Methoden entwickeln und die Unterschiede zu normalen Methoden und Attributen verstehen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Methode überladen
|
# Methode überladen
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Methoden überladen.
|
Methoden überladen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Methoden überschreiben
|
# Methoden überschreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Bei Vererbung das Überschreiben von Methoden einsetzen.
|
Bei Vererbung das Überschreiben von Methoden einsetzen.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Varag-Methode schreiben
|
# Varag-Methode schreiben
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Eine Varag-Methode schreiben.
|
Eine Varag-Methode schreiben.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Vererbung von Figuren
|
# Vererbung von Figuren
|
||||||
## Lernziel
|
## Lernziel
|
||||||
[Musterlösung](solution/)
|
|
||||||
|
|
||||||
|
|
||||||
Einfache Klassen schreiben und eine Vererbungshierarchie bilden.
|
Einfache Klassen schreiben und eine Vererbungshierarchie bilden.
|
||||||
|
|
|
||||||
222
readme.md
222
readme.md
|
|
@ -10,114 +10,114 @@ Hier finden Sie die **freiwilligen Übungen** zur Vorlesung Programmieren 2 (PR2
|
||||||
|
|
||||||
Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md).
|
Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md).
|
||||||
|
|
||||||
| # | Kapitel | Thema | Musterlösung |
|
| # | Kapitel | Thema |
|
||||||
|-----|-----------------------|---------------------------------------------------------------------------------------------------|----------------|
|
|-----|-----------------------|---------------------------------------------------------------------------------------------------|
|
||||||
| 1. | Auffrischung | [String in Großbuchstaben umwandeln](Auffrischung_001/readme.md) | [✅](Auffrischung_001/solution/) |
|
| 1. | Auffrischung | [String in Großbuchstaben umwandeln](Auffrischung_001/readme.md) |
|
||||||
| 2. | Auffrischung | [Labeled Break](Auffrischung_002/readme.md) | [✅](Auffrischung_002/solution/) |
|
| 2. | Auffrischung | [Labeled Break](Auffrischung_002/readme.md) |
|
||||||
| 3. | Auffrischung | [Passwortbewertung](Auffrischung_003/readme.md) | [✅](Auffrischung_003/solution/) |
|
| 3. | Auffrischung | [Passwortbewertung](Auffrischung_003/readme.md) |
|
||||||
| 4. | Auffrischung | [printf mit Formatstring](Auffrischung_004/readme.md) | [✅](Auffrischung_004/solution/) |
|
| 4. | Auffrischung | [printf mit Formatstring](Auffrischung_004/readme.md) |
|
||||||
| 5. | Auffrischung | [Maximum in einem Array suchen](Auffrischung_005/readme.md) | [✅](Auffrischung_005/solution/) |
|
| 5. | Auffrischung | [Maximum in einem Array suchen](Auffrischung_005/readme.md) |
|
||||||
| 6. | Auffrischung | [Taschenrechner](Auffrischung_006/readme.md) | [✅](Auffrischung_006/solution/) |
|
| 6. | Auffrischung | [Taschenrechner](Auffrischung_006/readme.md) |
|
||||||
| 7. | Einführung | [Java-Coding-Standard anwenden](Einfuehrung_001/readme.md) | [✅](Einfuehrung_001/solution/) |
|
| 7. | Einführung | [Java-Coding-Standard anwenden](Einfuehrung_001/readme.md) |
|
||||||
| 8. | Einführung | [JavaDoc schreiben](Einfuehrung_002/readme.md) | [✅](Einfuehrung_002/solution/) |
|
| 8. | Einführung | [JavaDoc schreiben](Einfuehrung_002/readme.md) |
|
||||||
| 9. | Einführung | [Klasse mit JUnit testen](Einfuehrung_003/readme.md) | [✅](Einfuehrung_003/solution/) |
|
| 9. | Einführung | [Klasse mit JUnit testen](Einfuehrung_003/readme.md) |
|
||||||
| 10. | Strukturierung | [Information-Hiding einer Klasse verbessern](Strukturierung_001/readme.md) | [✅](Strukturierung_001/solution/) |
|
| 10. | Strukturierung | [Information-Hiding einer Klasse verbessern](Strukturierung_001/readme.md) |
|
||||||
| 11. | Strukturierung | [Vorhandene Bibliotheken als JAR einbinden](Strukturierung_002/readme.md) | [✅](Strukturierung_002/solution/) |
|
| 11. | Strukturierung | [Vorhandene Bibliotheken als JAR einbinden](Strukturierung_002/readme.md) |
|
||||||
| 12. | Vererbung | [Final anwenden](Vererbung_001/readme.md) | [✅](Vererbung_001/solution/) |
|
| 12. | Vererbung | [Final anwenden](Vererbung_001/readme.md) |
|
||||||
| 13. | Vererbung | [Figur und Rechteck](Vererbung_002/readme.md) | [✅](Vererbung_002/solution/) |
|
| 13. | Vererbung | [Figur und Rechteck](Vererbung_002/readme.md) |
|
||||||
| 14. | Vererbung | [Figur erweitern](Vererbung_003/readme.md) | [✅](Vererbung_003/solution/) |
|
| 14. | Vererbung | [Figur erweitern](Vererbung_003/readme.md) |
|
||||||
| 15. | Vererbung | [Figur noch einmal erweitern](Vererbung_004/readme.md) | [✅](Vererbung_004/solution/) |
|
| 15. | Vererbung | [Figur noch einmal erweitern](Vererbung_004/readme.md) |
|
||||||
| 16. | Vererbung | [Konstruktoren schreiben](Vererbung_005/readme.md) | [✅](Vererbung_005/solution/) |
|
| 16. | Vererbung | [Konstruktoren schreiben](Vererbung_005/readme.md) |
|
||||||
| 17. | Vererbung | [Polymorphie einsetzen](Vererbung_006/readme.md) | [✅](Vererbung_006/solution/) |
|
| 17. | Vererbung | [Polymorphie einsetzen](Vererbung_006/readme.md) |
|
||||||
| 18. | Vererbung | [Singleton](Vererbung_007/readme.md) | [✅](Vererbung_007/solution/) |
|
| 18. | Vererbung | [Singleton](Vererbung_007/readme.md) |
|
||||||
| 19. | Vererbung | [Statische Methoden und Attribute](Vererbung_008/readme.md) | [✅](Vererbung_008/solution/) |
|
| 19. | Vererbung | [Statische Methoden und Attribute](Vererbung_008/readme.md) |
|
||||||
| 20. | Vererbung | [Methode überladen](Vererbung_009/readme.md) | [✅](Vererbung_009/solution/) |
|
| 20. | Vererbung | [Methode überladen](Vererbung_009/readme.md) |
|
||||||
| 21. | Vererbung | [Methoden überschreiben](Vererbung_010/readme.md) | [✅](Vererbung_010/solution/) |
|
| 21. | Vererbung | [Methoden überschreiben](Vererbung_010/readme.md) |
|
||||||
| 22. | Vererbung | [Varag-Methode schreiben](Vererbung_011/readme.md) | [✅](Vererbung_011/solution/) |
|
| 22. | Vererbung | [Varag-Methode schreiben](Vererbung_011/readme.md) |
|
||||||
| 23. | Vererbung | [Vererbung von Figuren](Vererbung_012/readme.md) | [✅](Vererbung_012/solution/) |
|
| 23. | Vererbung | [Vererbung von Figuren](Vererbung_012/readme.md) |
|
||||||
| 24. | Abstrakte Klassen | [Abstrakte Klassen](Abstrakte_Klassen_001/readme.md) | [✅](Abstrakte_Klassen_001/solution/) |
|
| 24. | Abstrakte Klassen | [Abstrakte Klassen](Abstrakte_Klassen_001/readme.md) |
|
||||||
| 25. | Abstrakte Klassen | [Abstrakte Klasse](Abstrakte_Klassen_002/readme.md) | [✅](Abstrakte_Klassen_002/solution/) |
|
| 25. | Abstrakte Klassen | [Abstrakte Klasse](Abstrakte_Klassen_002/readme.md) |
|
||||||
| 26. | Interfaces | [Comparable implementieren](Interfaces_001/readme.md) | [✅](Interfaces_001/solution/) |
|
| 26. | Interfaces | [Comparable implementieren](Interfaces_001/readme.md) |
|
||||||
| 27. | Interfaces | [Interface Stack entwerfen](Interfaces_002/readme.md) | [✅](Interfaces_002/solution/) |
|
| 27. | Interfaces | [Interface Stack entwerfen](Interfaces_002/readme.md) |
|
||||||
| 28. | Interfaces | [Interface: Uebersetzer](Interfaces_003/readme.md) | [✅](Interfaces_003/solution/) |
|
| 28. | Interfaces | [Interface: Uebersetzer](Interfaces_003/readme.md) |
|
||||||
| 29. | Interfaces | [Interfaces anwenden und entwerfen](Interfaces_004/readme.md) | [✅](Interfaces_004/solution/) |
|
| 29. | Interfaces | [Interfaces anwenden und entwerfen](Interfaces_004/readme.md) |
|
||||||
| 30. | Object und Wrapper | [Deep-Copy mit `clone()`](Object_und_Wrapper_001/readme.md) | [✅](Object_und_Wrapper_001/solution/) |
|
| 30. | Object und Wrapper | [Deep-Copy mit `clone()`](Object_und_Wrapper_001/readme.md) |
|
||||||
| 31. | Object und Wrapper | [Clone](Object_und_Wrapper_002/readme.md) | [✅](Object_und_Wrapper_002/solution/) |
|
| 31. | Object und Wrapper | [Clone](Object_und_Wrapper_002/readme.md) |
|
||||||
| 32. | Object und Wrapper | [`equals()` und `hashCode()` implementieren und nutzen](Object_und_Wrapper_003/readme.md) | [✅](Object_und_Wrapper_003/solution/) |
|
| 32. | Object und Wrapper | [`equals()` und `hashCode()` implementieren und nutzen](Object_und_Wrapper_003/readme.md) |
|
||||||
| 33. | Object und Wrapper | [equals und hashCode](Object_und_Wrapper_004/readme.md) | [✅](Object_und_Wrapper_004/solution/) |
|
| 33. | Object und Wrapper | [equals und hashCode](Object_und_Wrapper_004/readme.md) |
|
||||||
| 34. | Object und Wrapper | [`toString()`-Methode implementieren](Object_und_Wrapper_005/readme.md) | [✅](Object_und_Wrapper_005/solution/) |
|
| 34. | Object und Wrapper | [`toString()`-Methode implementieren](Object_und_Wrapper_005/readme.md) |
|
||||||
| 35. | Object und Wrapper | [Optimierung bei Integer](Object_und_Wrapper_006/readme.md) | [✅](Object_und_Wrapper_006/solution/) |
|
| 35. | Object und Wrapper | [Optimierung bei Integer](Object_und_Wrapper_006/readme.md) |
|
||||||
| 36. | Object und Wrapper | [Methoden der Wrapper-Klassen](Object_und_Wrapper_007/readme.md) | [✅](Object_und_Wrapper_007/solution/) |
|
| 36. | Object und Wrapper | [Methoden der Wrapper-Klassen](Object_und_Wrapper_007/readme.md) |
|
||||||
| 37. | Enumerationen | [Eigene Enumeration schreiben und verwenden](Enumerationen_001/readme.md) | [✅](Enumerationen_001/solution/) |
|
| 37. | Enumerationen | [Eigene Enumeration schreiben und verwenden](Enumerationen_001/readme.md) |
|
||||||
| 38. | Enumerationen | [Enumeration schreiben](Enumerationen_002/readme.md) | [✅](Enumerationen_002/solution/) |
|
| 38. | Enumerationen | [Enumeration schreiben](Enumerationen_002/readme.md) |
|
||||||
| 39. | Enumerationen | [Singleton-Eigenschaft von Enumerationen](Enumerationen_003/readme.md) | [✅](Enumerationen_003/solution/) |
|
| 39. | Enumerationen | [Singleton-Eigenschaft von Enumerationen](Enumerationen_003/readme.md) |
|
||||||
| 40. | Enumerationen | [Stein, Papier, Schere, Echse, Spock](Enumerationen_004/readme.md) | [✅](Enumerationen_004/solution/) |
|
| 40. | Enumerationen | [Stein, Papier, Schere, Echse, Spock](Enumerationen_004/readme.md) |
|
||||||
| 41. | Ausnahmen | [Ausnahmen testen](Ausnahmen_001/readme.md) | [✅](Ausnahmen_001/solution/) |
|
| 41. | Ausnahmen | [Ausnahmen testen](Ausnahmen_001/readme.md) |
|
||||||
| 42. | Ausnahmen | [Eigene Ausnahmen schreiben und an entsprechender Stelle werfen](Ausnahmen_002/readme.md) | [✅](Ausnahmen_002/solution/) |
|
| 42. | Ausnahmen | [Eigene Ausnahmen schreiben und an entsprechender Stelle werfen](Ausnahmen_002/readme.md) |
|
||||||
| 43. | Ausnahmen | [Eigene Exception schreiben](Ausnahmen_003/readme.md) | [✅](Ausnahmen_003/solution/) |
|
| 43. | Ausnahmen | [Eigene Exception schreiben](Ausnahmen_003/readme.md) |
|
||||||
| 44. | Ausnahmen | [Handle-or-Declare-Regel anwenden](Ausnahmen_004/readme.md) | [✅](Ausnahmen_004/solution/) |
|
| 44. | Ausnahmen | [Handle-or-Declare-Regel anwenden](Ausnahmen_004/readme.md) |
|
||||||
| 45. | Ausnahmen | [Ausnahmen mit `try` und `catch` behandeln.](Ausnahmen_005/readme.md) | [✅](Ausnahmen_005/solution/) |
|
| 45. | Ausnahmen | [Ausnahmen mit `try` und `catch` behandeln.](Ausnahmen_005/readme.md) |
|
||||||
| 46. | Input und Output | [`BufferedReader` zum zeilenweisen Lesen einsetzen](Input_und_Output_001/readme.md) | [✅](Input_und_Output_001/solution/) |
|
| 46. | Input und Output | [`BufferedReader` zum zeilenweisen Lesen einsetzen](Input_und_Output_001/readme.md) |
|
||||||
| 47. | Input und Output | [DataOutputStream](Input_und_Output_002/readme.md) | [✅](Input_und_Output_002/solution/) |
|
| 47. | Input und Output | [DataOutputStream](Input_und_Output_002/readme.md) |
|
||||||
| 48. | Input und Output | [DataOutputStream durch Serialisierung ersetzen](Input_und_Output_003/readme.md) | [✅](Input_und_Output_003/solution/) |
|
| 48. | Input und Output | [DataOutputStream durch Serialisierung ersetzen](Input_und_Output_003/readme.md) |
|
||||||
| 49. | Input und Output | [Daten mit `DataOutputStream` und `DataInputStream` verarbeiten](Input_und_Output_004/readme.md) | [✅](Input_und_Output_004/solution/) |
|
| 49. | Input und Output | [Daten mit `DataOutputStream` und `DataInputStream` verarbeiten](Input_und_Output_004/readme.md) |
|
||||||
| 50. | Input und Output | [Daten mit einem `InputStream` lesen](Input_und_Output_005/readme.md) | [✅](Input_und_Output_005/solution/) |
|
| 50. | Input und Output | [Daten mit einem `InputStream` lesen](Input_und_Output_005/readme.md) |
|
||||||
| 51. | Input und Output | [Daten mit einem `OutputStream` schreiben](Input_und_Output_006/readme.md) | [✅](Input_und_Output_006/solution/) |
|
| 51. | Input und Output | [Daten mit einem `OutputStream` schreiben](Input_und_Output_006/readme.md) |
|
||||||
| 52. | Input und Output | [Filesystem-Abstraktion mit `File`](Input_und_Output_007/readme.md) | [✅](Input_und_Output_007/solution/) |
|
| 52. | Input und Output | [Filesystem-Abstraktion mit `File`](Input_und_Output_007/readme.md) |
|
||||||
| 53. | Input und Output | [Fileattribute lesen](Input_und_Output_008/readme.md) | [✅](Input_und_Output_008/solution/) |
|
| 53. | Input und Output | [Fileattribute lesen](Input_und_Output_008/readme.md) |
|
||||||
| 54. | Input und Output | [`FilterReader`](Input_und_Output_009/readme.md) | [✅](Input_und_Output_009/solution/) |
|
| 54. | Input und Output | [`FilterReader`](Input_und_Output_009/readme.md) |
|
||||||
| 55. | Input und Output | [Konsolen Input/Output](Input_und_Output_010/readme.md) | [✅](Input_und_Output_010/solution/) |
|
| 55. | Input und Output | [Konsolen Input/Output](Input_und_Output_010/readme.md) |
|
||||||
| 56. | Input und Output | [Zeilen einer Textdatei zählen](Input_und_Output_011/readme.md) | [✅](Input_und_Output_011/solution/) |
|
| 56. | Input und Output | [Zeilen einer Textdatei zählen](Input_und_Output_011/readme.md) |
|
||||||
| 57. | Input und Output | [`RandomAccessFile`](Input_und_Output_012/readme.md) | [✅](Input_und_Output_012/solution/) |
|
| 57. | Input und Output | [`RandomAccessFile`](Input_und_Output_012/readme.md) |
|
||||||
| 58. | Input und Output | [`Reader` verwenden](Input_und_Output_013/readme.md) | [✅](Input_und_Output_013/solution/) |
|
| 58. | Input und Output | [`Reader` verwenden](Input_und_Output_013/readme.md) |
|
||||||
| 59. | Input und Output | [Rot13-Verschlüsselung](Input_und_Output_014/readme.md) | [✅](Input_und_Output_014/solution/) |
|
| 59. | Input und Output | [Rot13-Verschlüsselung](Input_und_Output_014/readme.md) |
|
||||||
| 60. | Input und Output | [Datei zerhacken](Input_und_Output_015/readme.md) | [✅](Input_und_Output_015/solution/) |
|
| 60. | Input und Output | [Datei zerhacken](Input_und_Output_015/readme.md) |
|
||||||
| 61. | Input und Output | [Serialisierung](Input_und_Output_016/readme.md) | [✅](Input_und_Output_016/solution/) |
|
| 61. | Input und Output | [Serialisierung](Input_und_Output_016/readme.md) |
|
||||||
| 62. | Generische Typen | [Einen generischen Typ schreiben](Generische_Typen_001/readme.md) | [✅](Generische_Typen_001/solution/) |
|
| 62. | Generische Typen | [Einen generischen Typ schreiben](Generische_Typen_001/readme.md) |
|
||||||
| 63. | Generische Typen | [Generische Klasse Pair schreiben](Generische_Typen_002/readme.md) | [✅](Generische_Typen_002/solution/) |
|
| 63. | Generische Typen | [Generische Klasse Pair schreiben](Generische_Typen_002/readme.md) |
|
||||||
| 64. | Generische Typen | [Generische Klasse Pair erweitern: NumberPair](Generische_Typen_003/readme.md) | [✅](Generische_Typen_003/solution/) |
|
| 64. | Generische Typen | [Generische Klasse Pair erweitern: NumberPair](Generische_Typen_003/readme.md) |
|
||||||
| 65. | Generische Typen | [Generische Klasse Pair erweitern: SamePair](Generische_Typen_004/readme.md) | [✅](Generische_Typen_004/solution/) |
|
| 65. | Generische Typen | [Generische Klasse Pair erweitern: SamePair](Generische_Typen_004/readme.md) |
|
||||||
| 66. | Generische Typen | [PairList](Generische_Typen_005/readme.md) | [✅](Generische_Typen_005/solution/) |
|
| 66. | Generische Typen | [PairList](Generische_Typen_005/readme.md) |
|
||||||
| 67. | Generische Typen | [Wildcard benutzen](Generische_Typen_006/readme.md) | [✅](Generische_Typen_006/solution/) |
|
| 67. | Generische Typen | [Wildcard benutzen](Generische_Typen_006/readme.md) |
|
||||||
| 68. | Generische Typen | [Generische Queue](Generische_Typen_007/readme.md) | [✅](Generische_Typen_007/solution/) |
|
| 68. | Generische Typen | [Generische Queue](Generische_Typen_007/readme.md) |
|
||||||
| 69. | Generische Typen | [`super` und `extends` einsetzen](Generische_Typen_008/readme.md) | [✅](Generische_Typen_008/solution/) |
|
| 69. | Generische Typen | [`super` und `extends` einsetzen](Generische_Typen_008/readme.md) |
|
||||||
| 70. | Generische Typen | [Generische Typen zusammen mit Wildcards einsetzen](Generische_Typen_009/readme.md) | [✅](Generische_Typen_009/solution/) |
|
| 70. | Generische Typen | [Generische Typen zusammen mit Wildcards einsetzen](Generische_Typen_009/readme.md) |
|
||||||
| 71. | Geschachtelte Klassen | [Eigene compare-Methode schreiben](Geschachtelte_Klassen_001/readme.md) | [✅](Geschachtelte_Klassen_001/solution/) |
|
| 71. | Geschachtelte Klassen | [Eigene compare-Methode schreiben](Geschachtelte_Klassen_001/readme.md) |
|
||||||
| 72. | Geschachtelte Klassen | [Innere Klasse Beobachter](Geschachtelte_Klassen_002/readme.md) | [✅](Geschachtelte_Klassen_002/solution/) |
|
| 72. | Geschachtelte Klassen | [Innere Klasse Beobachter](Geschachtelte_Klassen_002/readme.md) |
|
||||||
| 73. | Geschachtelte Klassen | [Callback mit anonymer Klasse realisieren](Geschachtelte_Klassen_003/readme.md) | [✅](Geschachtelte_Klassen_003/solution/) |
|
| 73. | Geschachtelte Klassen | [Callback mit anonymer Klasse realisieren](Geschachtelte_Klassen_003/readme.md) |
|
||||||
| 74. | Lambdas | [Comparator als Lambda](Lambdas_001/readme.md) | [✅](Lambdas_001/solution/) |
|
| 74. | Lambdas | [Comparator als Lambda](Lambdas_001/readme.md) |
|
||||||
| 75. | Lambdas | [Callback mit Lambda realisieren](Lambdas_002/readme.md) | [✅](Lambdas_002/solution/) |
|
| 75. | Lambdas | [Callback mit Lambda realisieren](Lambdas_002/readme.md) |
|
||||||
| 76. | Geschachtelte Klassen | [MatrixSuche](Geschachtelte_Klassen_001/readme.md) | [✅](Geschachtelte_Klassen_001/solution/) |
|
| 76. | Geschachtelte Klassen | [MatrixSuche](Geschachtelte_Klassen_001/readme.md) |
|
||||||
| 77. | Lambdas | [StringTransmogrifier](Lambdas_001/readme.md) | [✅](Lambdas_001/solution/) |
|
| 77. | Lambdas | [StringTransmogrifier](Lambdas_001/readme.md) |
|
||||||
| 78. | Lambdas | [StringTransmogrifier erweitern](Lambdas_002/readme.md) | [✅](Lambdas_002/solution/) |
|
| 78. | Lambdas | [StringTransmogrifier erweitern](Lambdas_002/readme.md) |
|
||||||
| 79. | Collections | [Iterator schreiben](Collections_001/readme.md) | [✅](Collections_001/solution/) |
|
| 79. | Collections | [Iterator schreiben](Collections_001/readme.md) |
|
||||||
| 80. | Collections | [Iterator programmieren](Collections_002/readme.md) | [✅](Collections_002/solution/) |
|
| 80. | Collections | [Iterator programmieren](Collections_002/readme.md) |
|
||||||
| 81. | Collections | [`List<T>` und dessen Implementierungen](Collections_003/readme.md) | [✅](Collections_003/solution/) |
|
| 81. | Collections | [`List<T>` und dessen Implementierungen](Collections_003/readme.md) |
|
||||||
| 82. | Collections | [`Map<T>` verwenden](Collections_004/readme.md) | [✅](Collections_004/solution/) |
|
| 82. | Collections | [`Map<T>` verwenden](Collections_004/readme.md) |
|
||||||
| 83. | Collections | [ReverserGeneric](Collections_005/readme.md) | [✅](Collections_005/solution/) |
|
| 83. | Collections | [ReverserGeneric](Collections_005/readme.md) |
|
||||||
| 84. | Collections | [Strings umgekehrt sortieren: Reverser](Collections_006/readme.md) | [✅](Collections_006/solution/) |
|
| 84. | Collections | [Strings umgekehrt sortieren: Reverser](Collections_006/readme.md) |
|
||||||
| 85. | Collections | [`Set<T>` und dessen Implementierungen](Collections_007/readme.md) | [✅](Collections_007/solution/) |
|
| 85. | Collections | [`Set<T>` und dessen Implementierungen](Collections_007/readme.md) |
|
||||||
| 86. | Collections | [CommandLineSorter](Collections_008/readme.md) | [✅](Collections_008/solution/) |
|
| 86. | Collections | [CommandLineSorter](Collections_008/readme.md) |
|
||||||
| 87. | Collections | [CommandLineSorter -- Version 2](Collections_009/readme.md) | [✅](Collections_009/solution/) |
|
| 87. | Collections | [CommandLineSorter -- Version 2](Collections_009/readme.md) |
|
||||||
| 88. | Collections | [`Comparator<T>` verwenden und Objekte sortieren](Collections_010/readme.md) | [✅](Collections_010/solution/) |
|
| 88. | Collections | [`Comparator<T>` verwenden und Objekte sortieren](Collections_010/readme.md) |
|
||||||
| 89. | Collections | [Wörterbuchprogramm](Collections_011/readme.md) | [✅](Collections_011/solution/) |
|
| 89. | Collections | [Wörterbuchprogramm](Collections_011/readme.md) |
|
||||||
| 90. | Streams | [Kleinbuchstaben in einem String zählen](Streams_001/readme.md) | |
|
| 90. | Streams | [Kleinbuchstaben in einem String zählen](Streams_001/readme.md) |
|
||||||
| 91. | Streams | [Buchstaben in einer Liste von Strings zählen](Streams_002/readme.md) | |
|
| 91. | Streams | [Buchstaben in einer Liste von Strings zählen](Streams_002/readme.md) |
|
||||||
| 92. | Streams | [Kleinbuchstaben in einem String zählen](Streams_003/readme.md) | |
|
| 92. | Streams | [Kleinbuchstaben in einem String zählen](Streams_003/readme.md) |
|
||||||
| 93. | Streams | [Liste filtern](Streams_004/readme.md) | |
|
| 93. | Streams | [Liste filtern](Streams_004/readme.md) |
|
||||||
| 94. | Streams | [Streams mit interner Iteration](Streams_005/readme.md) | |
|
| 94. | Streams | [Streams mit interner Iteration](Streams_005/readme.md) |
|
||||||
| 95. | Streams | [Map und Filter auf Streams](Streams_006/readme.md) | |
|
| 95. | Streams | [Map und Filter auf Streams](Streams_006/readme.md) |
|
||||||
| 96. | Streams | [Map und Reduce auf Streams](Streams_007/readme.md) | |
|
| 96. | Streams | [Map und Reduce auf Streams](Streams_007/readme.md) |
|
||||||
| 97. | Streams | [Reduce](Streams_008/readme.md) | |
|
| 97. | Streams | [Reduce](Streams_008/readme.md) |
|
||||||
| 98. | Streams | [Summe über reduce bestimmen](Streams_009/readme.md) | |
|
| 98. | Streams | [Summe über reduce bestimmen](Streams_009/readme.md) |
|
||||||
| 99. | Streams | [Wörter zählen](Streams_010/readme.md) | |
|
| 99. | Streams | [Wörter zählen](Streams_010/readme.md) |
|
||||||
| 100. | Threads | [Fakultät parallel berechnen](Threads_001/readme.md) | [✅](Threads_001/solution/) |
|
| 100. | Threads | [Fakultät parallel berechnen](Threads_001/readme.md) |
|
||||||
| 101. | Threads | [Thread per interrupt beenden](Threads_002/readme.md) | [✅](Threads_002/solution/) |
|
| 101. | Threads | [Thread per interrupt beenden](Threads_002/readme.md) |
|
||||||
| 102. | Threads | [wait und notify benutzen](Threads_003/readme.md) | [✅](Threads_003/solution/) |
|
| 102. | Threads | [wait und notify benutzen](Threads_003/readme.md) |
|
||||||
| 103. | Threads | [Parallele Ausgaben erzeugen](Threads_004/readme.md) | [✅](Threads_004/solution/) |
|
| 103. | Threads | [Parallele Ausgaben erzeugen](Threads_004/readme.md) |
|
||||||
| 104. | Threads | [Race-Condition finden und beheben](Threads_005/readme.md) | [✅](Threads_005/solution/) |
|
| 104. | Threads | [Race-Condition finden und beheben](Threads_005/readme.md) |
|
||||||
| 105. | Threads | [Stack und Heap unterscheiden](Threads_006/readme.md) | [✅](Threads_006/solution/) |
|
| 105. | Threads | [Stack und Heap unterscheiden](Threads_006/readme.md) |
|
||||||
| 106. | Threads | [synchronized verwenden](Threads_007/readme.md) | [✅](Threads_007/solution/) |
|
| 106. | Threads | [synchronized verwenden](Threads_007/readme.md) |
|
||||||
| 107. | Threads | [Timer und TimerTask verwenden](Threads_008/readme.md) | [✅](Threads_008/solution/) |
|
| 107. | Threads | [Timer und TimerTask verwenden](Threads_008/readme.md) |
|
||||||
| 108. | Reflection | [Klasse per Reflection analysieren](Reflection_001/readme.md) | |
|
| 108. | Reflection | [Klasse per Reflection analysieren](Reflection_001/readme.md) |
|
||||||
| 109. | Reflection | [Objekte per Reflection erzeugen](Reflection_002/readme.md) | |
|
| 109. | Reflection | [Objekte per Reflection erzeugen](Reflection_002/readme.md) |
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
package pr2.auffrischung.grossmacher;
|
|
||||||
|
|
||||||
public class Grossmacher {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
if (args.length < 1) {
|
|
||||||
System.err.println("Kein Argument angeben!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
String ergebnis = args[0].toUpperCase();
|
|
||||||
|
|
||||||
System.out.printf("Ergebnis: %s%n", ergebnis);
|
|
||||||
System.out.printf("Zeichen : %d%n", ergebnis.length());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
package pr2.auffrischung.labeled_break;
|
|
||||||
|
|
||||||
public class ArraySucher {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sucht das erste Element, dass nicht 0 ist.
|
|
||||||
*
|
|
||||||
* @param array das Array in dem gesucht werden soll
|
|
||||||
* @return {@code true}, wenn ein Element gefunden wird,
|
|
||||||
* andernfalls {@code false}.
|
|
||||||
*/
|
|
||||||
public boolean suche(int[][] array) {
|
|
||||||
boolean found = false;
|
|
||||||
|
|
||||||
outer:
|
|
||||||
for (int[] is : array) {
|
|
||||||
for (int i : is) {
|
|
||||||
if (i != 0) {
|
|
||||||
found = true;
|
|
||||||
break outer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue