Rumah >Java >javaTutorial >Membandingkan aliran ke gelung di java
, filter()
, map()
, dan forEach()
untuk manipulasi data. Kitaran hayat aliran bermula dengan sumber data, meneruskan saluran paip operasi, dan menyimpulkan dengan operasi terminal. collect()
Perbandingan prestasi:
Penandaarasan mendedahkan variasi prestasi bergantung kepada operasi tertentu. Walaupun gelung mudah kadang -kadang mungkin mengatasi aliran dalam senario tertentu (seperti yang ditunjukkan di bawah), aliran sering memberikan kod yang lebih mudah dibaca dan dikekalkan, terutama untuk transformasi data yang kompleks.Pendekatan algoritma
<code>Benchmark Is Here Mode Cnt Score Error Units ForLoopPerformanceTest.usingForEachLoop thrpt 20 259.008 ± 17.888 ops/s ForLoopPerformanceTest.usingIterator thrpt 20 256.016 ± 10.342 ops/s ForLoopPerformanceTest.usingSimpleForLoop thrpt 20 495.308 ± 12.866 ops/s ForLoopPerformanceTest.usingStream thrpt 20 257.174 ± 15.880 ops/s</code>
:
aliran menyediakan gaya deklaratif, sementara gelung adalah penting. Berikut adalah perbandingan:
Contoh Stream:
Contoh Loop (dipertingkatkan untuk gelung):
<code class="language-java">List<person> persons = List.of(...); // Sample Person class with name, age, gender List<string> namesOfAdults = persons.stream() .filter(p -> p.getAge() > 18) .map(Person::getName) .collect(Collectors.toList());</string></person></code>
Pengendalian Pengecualian:
<code class="language-java">List<person> persons = List.of(...); List<string> namesOfAdults = new ArrayList<>(); for (Person p : persons) { if (p.getAge() > 18) { namesOfAdults.add(p.getName()); } }</string></person></code>
Apabila bekerja dengan sungai (terutama yang melibatkan fail I/O), pengendalian pengecualian yang teguh adalah penting. Blok memastikan sumber dikeluarkan dengan betul, walaupun pengecualian berlaku.
Contoh dengan try-catch-finally
blok:
finally
Kesimpulan:
<code class="language-java">try { // Stream operations here... } catch (IOException e) { // Handle exception } finally { // Close resources }</code>
Java Streams menawarkan pendekatan berfungsi untuk pemprosesan data, sering membawa kepada kod yang lebih ringkas dan mudah dibaca. Walaupun prestasi mungkin berbeza -beza bergantung kepada tugas tertentu, aliran umumnya memberikan pendekatan yang unggul untuk manipulasi data yang kompleks, meningkatkan pemeliharaan kod dan kebolehbacaan. Pertimbangan yang teliti terhadap pengendalian pengecualian adalah penting ketika bekerja dengan sungai, terutama ketika berurusan dengan sumber luaran.
Atas ialah kandungan terperinci Membandingkan aliran ke gelung di java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!