您知道如何使用Java流API吗?
应用您了解流, lambdas ,方法处理程序和其他功能性Java事物的知识。
还有一些任务也会使思想甚至经验丰富的程序员。尝试解决所有问题。
现在有25个任务可用
克隆存储库→实现方法→运行测试→修复错误
实现的方法放在src tasks.StreamTasks中。最初,它们具有标准的UnsupportedOperationException (并且测试知道这一点)。您需要用解决方案替换此类行由流流或与之相关的内容组成(提供了每个任务的描述和提示)。
禁止将标准周期( while , do-while )完全及条件( if , for , if-else ,如果,...)退出流动。该项目的主要目标是教您如何在实践中使用功能方法。纯粹的功能范式中的一种可能排除是声明和使用局部变量。
由于这个项目,因此不需要依赖的库。如果您知道如何添加依赖项并且真正知道什么,那么您可以手动执行操作(但是,可以使用标准Java库来解决所有任务)。
主要要求是11版(或更高)的JVM
从tasks.StreamTasksMain中运行主方法。StreamTaskSmain类中的IDE或运行脚本文件test.(cmd|sh) 。
需要flag -ea来assert对检查器测试的关键词。否则所有测试将无法正确运行。
检查程序将对所有任务进行测试,然后为每个任务编写判决。
可能的判决:
null参考在您解决所有accepted任务之前,该程序将使用非零退出代码完成。
您可以使用参数example运行检查程序。为此,将example单词添加到在IDE或运行脚本的末尾传递参数: test.cmd example (for Windows)和./test.sh example (for Unix)
类tasks.StreamTasksExample中有一些实现的任务。StreamTaskSexample,因此将在example模式下进行测试。
不能保证实施是正确的或以最佳方式进行的;)
如果您不知道如何解决某些任务,就可以在tasks.solution.StreamTasksSolution类中看到src文件夹中的解决方案。此类用作检查答案的参考解决方案,因此您可以将paste代码复制到任务,并且将接受此任务。
尝试避免与解决方案进行任何互动,直到完成所有任务:)
您还可以将该项目的任务用于不同的挑战。例如,您可以检查在有限的时间内可以执行多少任务,或者需要多少时间来解决所有任务,等等。
版本0.1.0可在此处使用
未来计划:
[ ]任务数量增加到100[~]在测试引擎中添加更多输入发生器[✓]对于Map <?, ?>类型[✓]对于List <List <?>>类型(和任何外壳级别)[ ]别的[ ]为测试引擎添加更多输入变化(Fe收集作为另一个收集的另一个参数的扩展)[~]可以提出一些新的任务想法[ ]按主题将任务分为几个类