Apakah Anda tahu cara menggunakan Java Stream API?
Terapkan pengetahuan Anda tentang aliran , lambdas , penangan metode , dan hal -hal java fungsional lainnya.
Ada juga beberapa tugas yang akan membuat pemikiran bahkan programmer yang berpengalaman. Cobalah untuk menyelesaikan semuanya.
25 tugas tersedia sekarang
Klon Repositori → Metode Implement → Jalankan Tes → Perbaiki Kesalahan
Metode untuk diterapkan ditempatkan di tasks.StreamTasks kelas. StreamTasks di folder src . Awalnya mereka dibatalkan dengan standar UnsupportedOperationException (dan tes tahu tentang itu). Anda perlu mengganti baris tersebut dengan solusi terdiri dari aliran aliran atau sesuatu yang terkait dengannya (deskripsi dan petunjuk untuk setiap tugas disediakan).
Dilarang menggunakan siklus standar ( for , while , do-while , rekursi) di semua dan kondisi ( if , if-else , ...) di luar operasi aliran. Tujuan utama dari proyek ini adalah untuk mengajari Anda cara menggunakan pendekatan fungsional dalam praktik. Salah satu pengecualian yang mungkin dari paradigma fungsional murni adalah menyatakan dan penggunaan variabel lokal.
Karena proyek ini berorientasi pada pemula, tidak ada perpustakaan dependen yang diperlukan. Jika Anda tahu cara menambahkan dependensi dan benar -benar tahu untuk apa maka Anda dapat melakukannya secara manual (tetapi, diarahkan, semua tugas dapat diselesaikan hanya dengan menggunakan perpustakaan Java standar).
Persyaratan utama adalah JVM dari 11 versi (atau lebih tinggi)
Jalankan metode utama dari tasks.StreamTasksMain test.(cmd|sh)
Bendera -ea diperlukan untuk mengaktifkan Kata Kunci assert untuk Pemeriksa Tes. Kalau tidak, semua tes tidak akan dijalankan dengan benar.
Periksa program akan menjalankan tes untuk semua tugas dan kemudian menulis vonis untuk masing -masing tugas.
Kemungkinan vonis:
null Sampai Anda menyelesaikan semua tugas dengan putusan accepted , program akan selesai dengan kode keluar nol.
Anda dapat menjalankan program cek dengan example argumen. Untuk itu tambahkan example kata ke argumen lulus di IDE atau ke akhir skrip yang berjalan: test.cmd example (untuk windows) dan ./test.sh example (untuk unix)
Ada beberapa tugas yang diimplementasikan dalam tasks.StreamTasksExample kelas. StreamTaskSexample, sehingga mereka akan diuji dalam mode example .
Tidak dijamin bahwa implementasi benar atau dengan cara yang optimal;)
Jika Anda tidak tahu cara menyelesaikan beberapa tugas daripada Anda dapat melihat solusi dalam tasks.solution.StreamTasksSolution src Kelas ini digunakan sebagai solusi referensi untuk memeriksa jawaban, sehingga Anda dapat menyalin kode-pasta untuk tugas dan tugas ini akan diterima.
Cobalah untuk menghindari interaksi dengan solusi sampai Anda menyelesaikan semua tugas :)
Anda juga dapat menggunakan tugas dari proyek ini untuk berbagai tantangan. Misalnya, Anda dapat memeriksa berapa banyak tugas yang dapat Anda lakukan dalam waktu terbatas atau berapa banyak waktu yang Anda perlukan untuk menyelesaikan semuanya , dll.
Versi 0.1.0 tersedia di sini
Rencana Masa Depan:
[ ] Kenaikan jumlah tugas menjadi 100[~] Tambahkan lebih banyak generator input untuk menguji mesin[✓] untuk Map <?, ?> Ketik[✓] Untuk List <List <?>> Type (dan level penutup apa pun)[ ] Kalau tidak[ ] Tambahkan lebih banyak variasi input ke uji mesin (pengumpulan Fe sebagai perpanjangan parameter lain yang juga dikumpulkan)[~] Сome up dengan beberapa ide tugas baru[ ] Pisahkan tugas untuk beberapa kelas berdasarkan topik