JavaRush /Java Blog /Random-ID /Rehat kopi #73. Cara Meningkatkan Kode Java Anda dengan S...

Rehat kopi #73. Cara Meningkatkan Kode Java Anda dengan Streams. Lima Plugin IntelliJ IDEA Terbaik untuk Pengembang Java

Dipublikasikan di grup Random-ID

Cara Meningkatkan Kode Java Anda dengan Streams

Sumber: Dev.toRehat kopi #73.  Tingkatkan kode Java Anda dengan Streams.  Lima Plugin IntelliJ IDEA Terbaik untuk Pengembang Java - 1

Apa itu Aliran?

Aliran pertama kali muncul di Java 8. Menurut dokumentasi Oracle, aliran tersebut adalah kelas untuk mendukung operasi gaya fungsional pada aliran elemen, seperti transformasi pengurangan peta pada koleksi. Secara sederhana, aliran terdiri dari sumber data, diikuti oleh nol atau lebih operasi perantara, dan kemudian operasi terminal.

Apa itu sumber data?

  • Koleksi, Daftar, Kumpulan, int, panjang, ganda, array, baris file.

Apa yang dimaksud dengan operasi perantara?

  • Filter, petakan, sortir, dll.
  • Operasi ini mengembalikan Aliran sehingga dapat dirantai ke operasi lain.

Apa itu operasi terminal?

  • ForEach, kumpulkan, kurangi, temukanPertama, dll.
  • Mereka mengembalikan hasil yang tidak valid atau non-aliran.
  • Jika thread tidak memiliki operasi terminal, perantara tidak akan dipanggil.

Mari kita ubah fungsi dari gaya imperatif ke gaya deklaratif menggunakan Streams

Fungsi imperatif (Tanpa Aliran):

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 memperhatikan bahwa kita perlu melakukan beberapa hal secara manual:
  • Deklarasikan variabel hasil untuk melacak hasilnya.
  • Ulangi String.
  • Tulis dua pernyataan if (yang mungkin jauh lebih rumit dari kasus ini).
  • Tambahkan panjang masing-masing ke hasilnya.

Mari kita periksa gaya deklaratif (Streaming):

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 bedanya?
  • Kita memperoleh objek Stream dengan memanggil fungsi stream() .
  • (Operasi perantara) kita menggunakan fungsi filter dua kali - setiap kali kita menentukan kondisi yang harus dipenuhi hanya oleh elemen yang ingin kita pindahkan ke fase berikutnya.
  • (Operasi perantara) kita memetakan setiap objek String ke int dengan memanggil metode panjang (menggunakan gaya referensi metode).
  • (Operasi terminal) menjumlahkan semua nilai int sebelumnya .

Pengamatan

Bukankah pendekatan kedua tampak lebih sederhana? Kami menunjukkan apa yang kami inginkan, bukan bagaimana kami ingin melakukannya . Ini adalah semangat pemrograman deklaratif dan tujuan Stream API dalam aplikasi Java modern.

Lima Plugin IntelliJ IDEA Terbaik untuk Pengembang Java

Sumber: Plugin GitHubRehat kopi #73.  Tingkatkan kode Java Anda dengan Streams.  Lima Plugin IntelliJ IDEA Terbaik untuk Pengembang Java - 2 bisa sangat berguna dalam banyak situasi ketika bekerja dengan kode secara teratur. Mereka mampu memperluas fungsionalitas inti, menyediakan berbagai integrasi, dan mendukung otomatisasi banyak tugas. Berikut plugin terbaik menurut saya:

SonarLint

SonarLint memungkinkan Anda memperbaiki kesalahan dan kerentanan saat menulis kode. Ini menyoroti masalah pengkodean secara real-time, memberikan instruksi yang jelas kepada pengembang tentang cara memperbaikinya, sehingga Anda dapat memperbaikinya sebelum kode diterapkan. Plugin ini diperlukan karena sangat meningkatkan pengkodean.

Pembantu Maven

Saya harap Anda menggunakan Maven? Saya bersedia! Plugin Maven Helper menyediakan:
  • cara sederhana untuk menganalisis dan menghilangkan ketergantungan yang saling bertentangan;
  • cara mudah untuk menemukan ketergantungan langsung atau transitif;
  • langkah-langkah untuk menjalankan/men-debug target maven untuk modul yang berisi file saat ini, atau di modul root;
  • tindakan untuk membuka terminal di jalur saat ini ke modul maven;
  • tindakan untuk menjalankan/men-debug file pengujian saat ini. Jika maven-surefire-plugin dikonfigurasi untuk melewati atau mengecualikan pengujian, tujuan "verifikasi" akan digunakan. Berbagai gaya konfigurasi dapat ditemukan di GitHub .

KodeMetrik

Plugin ini memiliki indikator tab berdasarkan perhitungan kesulitan khusus untuk file Java. Mereka memberikan petunjuk kepada pengembang mengenai kelas dan metode sehingga dia dapat dengan mudah menentukan apa yang perlu diperiksa. Meskipun ini bukan metrik standar, ini mendekati kompleksitas siklomatik . Anda juga dapat menyesuaikan perhitungan kompleksitas suatu proyek dengan mengubah entri konfigurasi yang sesuai.

Manipulasi Senar

Peralihan huruf besar-kecil, pengurutan, pemfilteran, pembesaran, perataan kolom, pengambilan, pelolosan, penyandian, dan banyak lagi...

sobat JPA

JPA Buddy membuat segala sesuatu yang berhubungan dengan JPA menjadi mudah dan cepat. Ini menyediakan alat untuk membantu Anda bekerja dengan Hibernate, Spring Data JPA, Liquibase, Flyway. Fitur utama Sobat JPA:
  • Entitas JPA: Membuat dan mengedit entitas, atribut entitas, callback siklus hidup, indeks, dan batasan. Dukungan untuk konverter JPA dan tipe khusus Hibernate. Kemampuan untuk menggunakan anotasi Lombok untuk entitas.
  • Buat implementasi metode sama dengan, kode hash, dan toString yang benar untuk entitas JPA.
  • Maksud kode sumber, pemeriksaan, dan perbaikan cepat untuk deklarasi entitas JPA.
  • Menampilkan secara grafis hubungan entitas di panel struktur JPA di bawah node unit persisten.
  • Pembuatan log perubahan Liquibase secara otomatis dan migrasi versi Flyway: perbandingan database-ke-database, model-ke-database, model-ke-snapshot.
  • Perancang log perubahan dan bantuan pengkodean Visual Liquibase: membuat dan mengedit item, mereferensikan nama tabel, nama kolom, file yang disertakan, dan banyak lagi.
  • Tindakan: buat snapshot Liquibase, jalankan perintah "Liquibase update" dan "Liquibase updateSQL".
  • Repositori Data Musim Semi: Membuat repositori, membuat metode repositori, mengedit properti metode, membuat proyeksi berdasarkan kelas entitas, mengekstraksi kueri JPQL.
  • Kotlin: Semua desainer visual sepenuhnya mendukung pembuatan kode untuk objek dan repositori Kotlin.
Saya katakan tentang lima plugin teratas, tapi saya punya satu lagi...

Ikon Ekstra

Ini adalah kumpulan ikon yang menambahkan pintasan ke file seperti Markdown, Yaml, Maven, Git dan banyak lagi. Anda akan terbiasa dengannya karena membantu Anda mengenali file dengan mudah. Anda pasti membutuhkannya.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION