Ciri baharu Java 9 Stream Collectors
Java 8 memperkenalkan Collectors, yang digunakan untuk mengumpul elemen input ke dalam bekas boleh ubah seperti Peta, Senarai dan Set. Artikel ini melihat dua Pengumpul baharu dalam Java 9: Collectors.filtering dan Collectors.flatMapping, yang digunakan terutamanya untuk menyediakan koleksi elemen pintar bersama-sama dengan Collectors.groupingBy.
Collectors. kaedah penapisan
Kaedah Collectors.filtering adalah serupa dengan kaedah Stream filter(), yang digunakan untuk menapis elemen input, tetapi senario penggunaan kedua-duanya adalah berbeza. Penapis strim() digunakan dalam kaedah rantaian strim, manakala kaedah penapisan Collectors.filtering direka untuk digunakan dengan groupingBy.
Penapis strim() mula-mula menapis elemen dan kemudian mengumpulkannya. Nilai yang ditapis dibuang dan tidak boleh dikesan secara retroaktif. Jika anda perlu menjejaki perkara yang anda perlu kumpulkan dahulu dan kemudian tapis, itulah yang Collectors.filtering boleh lakukan.
Collectors.filtering mengambil parameter fungsi untuk menapis parameter input, dan kemudian mengumpulkan elemen penapis:
@Test public void givenList_whenSatifyPredicate_thenMapValueWithOccurences() { List<integer> numbers = List.of(1, 2, 3, 5, 5); Map<integer> result = numbers.stream() .filter(val -> val > 3) .collect(Collectors.groupingBy(i -> i, Collectors.counting())); assertEquals(1, result.size()); result = numbers.stream() .collect(Collectors.groupingBy(i -> i, Collectors.filtering(val -> val > 3, Collectors.counting()))); assertEquals(4, result.size()); }</integer></integer>
Collectors.flatMapping kaedah
Collectors.flatMapping adalah serupa dengan kaedah Collectors.mapping, tetapi lebih berbutir. Kedua-duanya mengambil fungsi dan parameter pengumpul untuk mengumpul elemen, tetapi fungsi flatMapping menerima aliran elemen dan kemudian melakukan operasi pengumpulan melalui pengumpul. Mula-mula, mari lihat kelas model:
class Blog { private String authorName; private List<string> comments = new ArrayList(); public Blog(String authorName, String ... comment){ this.authorName = authorName; comments.addAll(Arrays.asList(comment)); } public String getAuthorName(){ return this.authorName; } public List<string> getComments(){ return comments; } }</string></string>
Kaedah Collectors.flatMapping melangkau koleksi perantaraan dan menulis terus ke bekas pemetaan kumpulan tunggal yang ditakrifkan oleh Collectors.groupingBy:
@Test public void givenListOfBlogs_whenAuthorName_thenMapAuthorWithComments() { Blog blog1 = new Blog("1", "Nice", "Very Nice"); Blog blog2 = new Blog("2", "Disappointing", "Ok", "Could be better"); List<blog> blogs = List.of(blog1, blog2); Map<string>>> authorComments1 = blogs.stream() .collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.mapping(Blog::getComments, Collectors.toList()))); assertEquals(2, authorComments1.size()); assertEquals(2, authorComments1.get("1").get(0).size()); assertEquals(3, authorComments1.get("2").get(0).size()); Map<string>> authorComments2 = blogs.stream() .collect(Collectors.groupingBy(Blog::getAuthorName, Collectors.flatMapping(blog -> blog.getComments().stream(), Collectors.toList()))); assertEquals(2, authorComments2.size()); assertEquals(2, authorComments2.get("1").size()); assertEquals(3, authorComments2.get("2").size()); }</string></string></blog>
Pengumpul. memetakan semua nilai yang dikumpulkan (ulasan pengarang) ke bekas koleksi, seperti Senarai. Dan padamkan koleksi perantaraan dan simpan koleksi terus ke dalam bekas pengumpul.
Atas ialah kandungan terperinci Cara menggunakan ciri baharu Java9 Stream Collectors. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版
Alat pembangunan web visual

SecLists
SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver CS6
Alat pembangunan web visual