JavaRush /Blog Java /Random-MS /Coffee break #73. Cara Meningkatkan Kod Java Anda dengan ...

Coffee break #73. Cara Meningkatkan Kod Java Anda dengan Strim. Lima Pemalam IntelliJ IDEA Terbaik untuk Pembangun Java

Diterbitkan dalam kumpulan

Cara Meningkatkan Kod Java Anda dengan Strim

Sumber: Dev.toCoffee break #73.  Tingkatkan kod Java anda dengan Streams.  Lima Pemalam IntelliJ IDEA Terbaik untuk Pembangun Java - 1

Apakah itu Streams?

Aliran pertama kali muncul dalam Java 8. Menurut dokumentasi Oracle, ia adalah kelas untuk menyokong operasi gaya fungsian pada aliran elemen, seperti transformasi pengurangan peta pada koleksi. Secara ringkas, strim terdiri daripada sumber data, diikuti dengan sifar atau lebih operasi perantaraan, dan kemudian operasi terminal.

Apakah sumber data?

  • Koleksi, Senarai, Set, int, longs, double, tatasusunan, baris fail.

Apakah operasi perantaraan?

  • Tapis, peta, isih, dsb.
  • Operasi ini mengembalikan Strim supaya ia boleh dirantai ke operasi lain.

Apakah operasi terminal?

  • ForEach, kumpul, kurangkan, cariFirst, dsb.
  • Mereka mengembalikan hasil yang tidak sah atau bukan strim.
  • Jika benang tidak mempunyai operasi terminal, perantaraan tidak akan dipanggil.

Mari tukar fungsi daripada gaya imperatif kepada gaya deklaratif menggunakan Strim

Fungsi imperatif (Tiada Strim):


private int getResult_imperative(List<String> strings) {  
    int result = 0;  
    for (String string : strings){  
        if(isDigit(string.charAt(0))) continue;  
        if (string.contains("_")) continue;  
        result += string.length();  
    }  
    return result;  
}
Di sini kita dapati bahawa kita perlu melakukan beberapa perkara secara manual:
  • Isytihar pembolehubah hasil untuk menjejaki hasilnya.
  • Gelung melalui Rentetan.
  • Tulis dua pernyataan jika (yang boleh menjadi lebih kompleks daripada kes ini).
  • Tambahkan panjang setiap satu pada hasil.

Mari kita semak gaya perisytiharan (Strim):


private int getResult_Declarative(List<String> strings){  
    return strings.  
            stream().  
            filter(s -> !isDigit(s.charAt(0))).  
            filter(s -> !s.contains("_")).  
            mapToInt(String::length).  
            sum();  
}
Jadi apa bezanya?
  • Kami mendapatkan objek Stream dengan memanggil fungsi stream() .
  • (Operasi perantaraan) kami menggunakan fungsi penapis dua kali - setiap kali kami menentukan syarat yang mesti dipenuhi hanya oleh unsur-unsur yang ingin kami pindahkan dalam fasa seterusnya.
  • (Operasi perantaraan) kami memetakan setiap objek String kepada int dengan memanggil kaedah panjang (menggunakan gaya rujukan kaedah).
  • (Operasi terminal) jumlah semua nilai int sebelumnya .

Pemerhatian

Tidakkah pendekatan kedua kelihatan lebih mudah? Kami menunjukkan apa yang kami mahu, bukan bagaimana kami mahu melakukannya . Ini ialah semangat pengaturcaraan deklaratif dan matlamat API Stream dalam aplikasi Java moden.

Lima Pemalam IntelliJ IDEA Terbaik untuk Pembangun Java

Sumber: Pemalam GitHubCoffee break #73.  Tingkatkan kod Java anda dengan Streams.  Lima Pemalam IntelliJ IDEA Terbaik untuk Pembangun Java - 2 boleh menjadi sangat berguna dalam banyak situasi apabila bekerja dengan kod secara tetap. Mereka mampu melanjutkan fungsi teras, menyediakan pelbagai penyepaduan, dan menyokong automasi banyak tugas. Berikut adalah pemalam terbaik pada pendapat saya:

SonarLint

SonarLint membolehkan anda membetulkan ralat dan kelemahan semasa menulis kod. Ia menyerlahkan masalah pengekodan dalam masa nyata, memberikan pembangun arahan yang jelas tentang cara membetulkannya, supaya anda boleh membetulkannya sebelum kod itu dilakukan. Pemalam ini diperlukan kerana ia sangat meningkatkan pengekodan.

Pembantu Maven

Saya harap anda menggunakan Maven? Saya sudi! Pemalam Maven Helper menyediakan:
  • cara mudah untuk menganalisis dan menghapuskan kebergantungan yang bercanggah;
  • cara mudah untuk mencari kebergantungan langsung atau transitif;
  • langkah untuk menjalankan/menyahpepijat sasaran maven untuk modul yang mengandungi fail semasa, atau dalam modul akar;
  • tindakan untuk membuka terminal pada laluan semasa ke modul maven;
  • tindakan untuk menjalankan/menyahpepijat fail ujian semasa. Jika maven-surefire-plugin dikonfigurasikan untuk melangkau atau mengecualikan ujian, matlamat "sahkan" akan digunakan. Pelbagai gaya konfigurasi boleh didapati di GitHub .

CodeMetrics

Pemalam ini mempunyai penunjuk tab berdasarkan pengiraan kesukaran tersuai untuk fail Java. Mereka memberikan petunjuk pembangun dalam kelas dan kaedah supaya dia boleh menentukan dengan mudah perkara yang perlu diperiksa. Walaupun ini bukan metrik standard, ia adalah anggaran yang hampir kepada kerumitan siklomatik . Anda juga boleh menyesuaikan pengiraan kerumitan untuk projek dengan menukar entri konfigurasi yang sesuai.

Manipulasi Rentetan

Penukaran kes, pengisihan, penapisan, zum, penjajaran lajur, grepping, escape, pengekodan dan banyak lagi...

JPA Kawan

JPA Buddy menjadikan semua yang berkaitan dengan JPA mudah dan cepat. Ia menyediakan alatan untuk membantu anda bekerja dengan Hibernate, Spring Data JPA, Liquibase, Flyway. Ciri-ciri utama JPA Buddy:
  • Entiti JPA: Buat dan edit entiti, atribut entiti, panggil balik kitaran hayat, indeks dan kekangan. Sokongan untuk penukar JPA dan jenis tersuai Hibernate. Keupayaan untuk menggunakan anotasi Lombok untuk entiti.
  • Cipta pelaksanaan kaedah equals, hashCode dan toString yang betul untuk entiti JPA.
  • Niat kod sumber, semakan dan pembetulan pantas untuk pengisytiharan entiti JPA.
  • Paparkan secara grafik perhubungan entiti dalam panel struktur JPA di bawah nod unit berterusan.
  • Penjanaan automatik log perubahan Liquibase dan migrasi versi Flyway: pangkalan data-ke-pangkalan data, model-ke-pangkalan data, perbandingan model-ke-snapshot.
  • Pereka bentuk log perubahan Visual Liquibase dan bantuan pengekodan: mencipta dan mengedit item, merujuk nama jadual, nama lajur, fail yang disertakan dan banyak lagi.
  • Tindakan: buat petikan Liquibase, laksanakan arahan "kemas kini Liquibase" dan "Liquibase updateSQL".
  • Repositori Data Spring: Mencipta repositori, mencipta kaedah repositori, menyunting sifat kaedah, mencipta unjuran berdasarkan kelas entiti, mengekstrak pertanyaan JPQL.
  • Kotlin: Semua pereka visual menyokong sepenuhnya penjanaan kod untuk objek dan repositori Kotlin.
Saya berkata tentang lima pemalam teratas, tetapi saya mempunyai satu lagi...

Ikon Tambahan

Ini ialah koleksi ikon yang menambah pintasan pada fail seperti Markdown, Yaml, Maven, Git dan banyak lagi. Anda akan terbiasa dengannya kerana ia membantu anda mengenali fail dengan mudah. Anda pasti memerlukannya.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION