Rumah  >  Artikel  >  Java  >  Memahami Terminal vs Operator Perantaraan dalam Aliran Java: Perbezaan Utama dan Contoh

Memahami Terminal vs Operator Perantaraan dalam Aliran Java: Perbezaan Utama dan Contoh

Barbara Streisand
Barbara Streisandasal
2024-10-11 10:11:02495semak imbas

Understanding Terminal vs Intermediate Operators in Java Streams: Key Differences and Examples

1. Gambaran Keseluruhan Java Streams

Java Stream, yang diperkenalkan dalam Java 8, membenarkan operasi gaya berfungsi pada jujukan elemen. Mereka menyediakan cara yang berkesan untuk memproses koleksi data dengan cara yang lebih deklaratif dan boleh dibaca.

1.1 Apakah Pengendali Terminal?

Operator Terminal ialah operasi yang menandakan berakhirnya saluran paip aliran. Mereka mencetuskan pemprosesan data dalam aliran dan menghasilkan hasil atau kesan sampingan. Sebaik sahaja operator terminal dipanggil, strim dianggap digunakan, dan tiada operasi lanjut boleh dilakukan padanya.

Contoh Biasa Operator Terminal:

  • forEach(): Mengulang setiap elemen dan melakukan tindakan.
  • collect(): Mengumpul elemen strim ke dalam koleksi atau bentuk lain.
  • reduce(): Menggabungkan elemen strim menjadi satu hasil.
  • count(): Mengira bilangan elemen dalam strim.

Contoh Kod:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class TerminalOperatorExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie");

        // Terminal operator: forEach
        names.stream().forEach(name -> System.out.println("Name: " + name));

        // Terminal operator: collect
        List<String> filteredNames = names.stream()
                                           .filter(name -> name.startsWith("A"))
                                           .collect(Collectors.toList());
        System.out.println("Filtered Names: " + filteredNames);
    }
}

Keputusan Demo:

Name: Alice
Name: Bob
Name: Charlie
Filtered Names: [Alice]

1.2 Apakah Pengendali Perantaraan?

Operator Perantaraan ialah operasi yang mengubah aliran kepada aliran lain. Mereka tidak mencetuskan sebarang pemprosesan sehingga operator terminal dipanggil. Pengendali ini digunakan untuk membina saluran paip operasi, membolehkan pemprosesan dan manipulasi data yang cekap.

Contoh Biasa Operator Perantaraan:

  • penapis(): Menapis elemen berdasarkan predikat.
  • map(): Mengubah setiap elemen menggunakan fungsi.
  • diisih(): Isih elemen mengikut pembanding.
  • distinct(): Mengalih keluar unsur pendua.

Contoh Kod:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class IntermediateOperatorExample {
    public static void main(String[] args) {
        List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Alice");

        // Intermediate operators: filter and map
        List<String> transformedNames = names.stream()
                                              .filter(name -> name.startsWith("A"))
                                              .map(String::toUpperCase)
                                              .distinct()
                                              .collect(Collectors.toList());
        System.out.println("Transformed Names: " + transformedNames);
    }
}

Keputusan Demo:

Transformed Names: [ALICE]

2. Perbezaan Utama Antara Operator Terminal dan Perantaraan

Memahami perbezaan antara operator ini adalah penting untuk pemprosesan strim yang berkesan.

2.1 Tujuan dan Kefungsian

  • Operator Terminal : Tamatkan saluran paip, cetuskan pemprosesan dan hasilkan hasil atau kesan sampingan. Mereka direka bentuk untuk melakukan tindakan dan menjana output daripada strim.
  • Operator Perantaraan : Ubah strim kepada strim lain tanpa melakukan sebarang pemprosesan pada data. Ia digunakan untuk membuat saluran paip operasi yang dilaksanakan sebaik sahaja operator terminal digunakan.

2.2 Perlaksanaan dan Prestasi

  • Operator Terminal : Menyebabkan pemprosesan keseluruhan saluran paip aliran. Ia dilaksanakan sekali sahaja dan boleh mahal dari segi pengiraan bergantung pada operasi.
  • Operator Perantaraan : Malas dan tidak melakukan sebarang pemprosesan sehingga operator terminal dipanggil. Ini membolehkan rantaian operasi yang cekap tanpa pengiraan yang tidak perlu.

2.3 Kebolehubahan dan Keadaan

  • Operator Terminal : Boleh menghasilkan kesan sampingan atau mengubah suai keadaan luaran. Contohnya, forEach() boleh mencetak elemen ke konsol atau mengemas kini koleksi luaran.
  • Operator Perantaraan : Tidak bernegara dan tidak mengubah suai keadaan luaran. Mereka hanya bekerja pada data dalam strim dan menghasilkan strim baharu sebagai output.

3. Kesimpulan

Memahami Terminal dan Operator Perantaraan dalam Java Streams adalah penting untuk menulis kod yang cekap dan boleh dibaca. Operator Terminal melengkapkan saluran paip pemprosesan aliran, manakala Operator Perantaraan membina dan mengubah saluran paip. Dengan memanfaatkan pengendali ini dengan berkesan, anda boleh mengendalikan tugas pemprosesan data dengan cara yang lebih deklaratif dan berfungsi.

Jika anda mempunyai sebarang pertanyaan atau memerlukan penjelasan lanjut, sila komen di bawah!

Baca siaran lebih lanjut di : Memahami Terminal vs Operator Perantaraan dalam Aliran Java: Perbezaan Utama dan Contoh

Atas ialah kandungan terperinci Memahami Terminal vs Operator Perantaraan dalam Aliran Java: Perbezaan Utama dan Contoh. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn