Wissen Sie, wie Sie Java Stream API verwenden?
Wenden Sie sich an, dass Sie Streams , Lambdas , Methodenhandler und andere funktionale Java -Dinge anwenden.
Es gibt auch einige Aufgaben, die denken, auch erfahrene Programmierer. Versuchen Sie, sie alle zu lösen.
25 Aufgaben sind ab sofort verfügbar
Klonrepository → Methoden implementieren → Tests ausführen → Fehler beheben
Die implementierten Methoden werden in tasks.StreamTasks platziert. Streamtasks im src -Ordner. Zunächst sind sie mit UnsupportedOperationException Standard -Exception (und Tests Bescheid wissen). Sie müssen solche Linien durch Lösung ersetzen, besteht aus Stream -Fluss oder etwas, das sich darauf bezieht (Beschreibung und Hinweise für jede Aufgabe werden bereitgestellt).
Es ist verboten , Standardzyklen ( for while , do-while der Rekursion) auf alle und Bedingungen ( if , if-else , ...) aus Stream-Operationen zu verwenden. Das Hauptziel dieses Projekts ist es, Ihnen beizubringen, wie der funktionale Ansatz in der Praxis verwendet wird. Ein möglicher Ausschluss aus reinem funktionellem Paradigma ist die Erklärung und Verwendung lokaler Variablen.
Aufgrund dieses Projekts sind Anfänger orientiert , keine abhängigen Bibliotheken sind erforderlich. Wenn Sie wissen, wie man Abhängigkeiten hinzufügt und wirklich wissen, was Sie manuell tun können (aber zeigen, können alle Aufgaben nur mit der Standard -Java -Bibliothek gelöst werden).
Die Hauptanforderung ist JVM von 11 Version (oder höher)
Führen Sie die Hauptmethode aus tasks.StreamTasksMain aus test.(cmd|sh)
Flag -ea ist erforderlich, um das Schlüsselwort für Tests zu assert . Andernfalls werden alle Tests nicht richtig durchgeführt.
Das Überprüfprogramm wird Tests für alle Aufgaben ausführen und dann ein Urteil für jede Aufgaben schreiben.
Mögliche Urteile:
null zu überprüfen Bis Sie alle Aufgaben mit dem Urteil accepted wird das Programm mit dem Exit-Code ungleich Null abgeschlossen.
Sie können das Prüfprogramm mit Argument example ausführen. Fügen Sie für dieses example ein Beispiel für das Übergeben von Argumenten in IDE oder am Ende von Skripten hinzu: test.cmd example (für Windows) und ./test.sh example (für UNIX)
Es gibt einige implementierte Aufgaben in example tasks.StreamTasksExample .
Nicht garantiert, dass die Implementierung korrekt oder optimal ist;)
Falls Sie nicht wissen, wie Sie eine Aufgabe lösen können, können Sie die Lösung in src tasks.solution.StreamTasksSolution sehen. Diese Klasse wird als Referenzlösung verwendet, um Antworten zu überprüfen, sodass Sie den Code in die Aufgabe kopieren können, und diese Aufgabe wird akzeptiert.
Versuchen Sie, eine Interaktion mit Lösungen zu vermeiden, bis Sie alle Aufgaben erledigt haben :)
Sie können auch Aufgaben aus diesem Projekt für verschiedene Herausforderungen verwenden. Sie können beispielsweise überprüfen, wie viele Aufgaben Sie in begrenzter Zeit erledigen können oder wie viel Zeit Sie benötigen, um sie alle zu lösen , usw.
Version 0.1.0 ist hier verfügbar
Zukünftige Pläne:
[ ] Anstiegszahl der Aufgaben auf 100[~] Fügen Sie mehr Eingangsgeneratoren hinzu, um die Engine zu testen[✓] für Map <?, ?> Typ[✓] für List <List <?>> Typ (und eine Gehäusestufe)[ ] Anders[ ] Fügen Sie der Testmotor weitere Eingangsschwankungen hinzu (Fe -Sammlung als Erweiterung eines anderen Parameters, der auch Sammlung ist)[~] Mit einigen neuen Aufgabenideen aufstehen[ ] Aufgaben auf mehrere Klassen durch Themen aufgeteilt