هل تعرف كيفية استخدام Java Stream API؟
قم بتطبيق معرفتك بالتيارات ، lambdas ، معالجات الأسلوب وغيرها من الأشياء الوظيفية Java.
هناك أيضًا بعض المهام التي ستجعل التفكير حتى المبرمجين ذوي الخبرة. حاول حلهم جميعًا.
25 مهمة متوفرة الآن
مستودع الاستنساخ ← تنفيذ الأساليب ← إجراء اختبارات ← إصلاح الأخطاء
يتم وضع طرق للتنفيذ في tasks.StreamTasks src . في البداية ، يتم وضعها مع قياسي UnsupportedOperationException (واختبارات تعرف ذلك). تحتاج إلى استبدال هذه الخطوط بمحلول يتكون من تدفق الدفق أو شيء يتعلق به (الوصف والتلميحات لكل مهمة متوفرة).
يحظر استخدام الدورات القياسية ( for ، while ، do-while ، العودية) على الإطلاق والظروف ( if ، if-else ، ...) من عمليات الدفق. الهدف الرئيسي من هذا المشروع هو تعليمك كيفية استخدام النهج الوظيفي في الممارسة العملية. أحد الإقصاء المحتملين من النموذج الوظيفي الخالص هو إعلان واستخدام المتغيرات المحلية.
بسبب هذا المشروع موجه للمبتدئين ، لا يلزم وجود مكتبات تابعة . إذا كنت تعرف كيفية إضافة تبعيات وتعرف حقًا ماذا يمكنك أن تفعل ذلك يدويًا (ولكن ، تكون موجهة ، يمكن حل جميع المهام باستخدام مكتبة Java القياسية فقط).
الشرط الرئيسي هو JVM من 11 نسخة (أو أعلى)
قم بتشغيل الطريقة الرئيسية من tasks.StreamTasksMain test.(cmd|sh)
مطلوب Flag -ea لتمكين assert كلمة مفتاح الاختبارات المدقق. وإلا فلن يتم تشغيل جميع الاختبارات بشكل صحيح.
سيقوم Check Program بإجراء اختبارات لجميع المهام ثم كتابة الحكم لكل من المهام.
الأحكام المحتملة:
null حتى تقوم بحل جميع المهام مع accepted الحكم ، سينتهي البرنامج برمز خروج غير صفري.
يمكنك تشغيل برنامج التحقق مع example الوسيطة. لذلك أضف كلمة example إلى تمرير الوسائط في IDE أو إلى نهاية تشغيل البرامج النصية: test.cmd example (لنظام التشغيل Windows) و ./test.sh example (لـ UNIX)
هناك بعض المهام التي تم تنفيذها في tasks.StreamTasksExample الفصل. StreamTaskSexample ، لذلك سيتم اختبارها في وضع example .
غير مضمون أن التنفيذ صحيح أو بطريقة مثالية ؛)
src حال كنت لا تعرف كيفية حل بعض المهام مما يمكنك رؤية الحل في tasks.solution.StreamTasksSolution . يتم استخدام هذه الفئة كحل مرجعي للتحقق من الإجابات ، بحيث يمكنك نسخ رمز الصغار إلى المهمة وسيتم قبول هذه المهمة.
حاول تجنب أي تفاعل مع الحلول حتى تكمل جميع المهام :)
يمكنك أيضًا استخدام المهام من هذا المشروع لتحديات مختلفة. على سبيل المثال ، يمكنك التحقق من عدد المهام التي يمكنك القيام بها في وقت محدود أو مقدار الوقت الذي ستحتاج إليه لحلها جميعًا ، إلخ.
الإصدار 0.1.0 متاح هنا
الخطط المستقبلية:
[ ] ارتفاع عدد المهام إلى 100[~] أضف المزيد من مولدات الإدخال لاختبار المحرك[✓] Map <?, ?> اكتب[✓] للحصول على List <List <?>> اكتب (وأي مستوى حاوية)[ ] آخر[ ] أضف المزيد من أشكال الإدخال إلى اختبار المحرك (مجموعة FE كامتداد لمعلمة أخرى هي المجموعة أيضًا)[~][ ] تقسيم المهام إلى عدة فصول حسب الموضوعات