informasi kontak saya
Surat[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Bagaimana cara menggunakan Java Stream API untuk menyederhanakan operasi pengumpulan?
Halo semuanya, saya editor Weizhuan Taoke System 3.0, dan saya juga seorang programmer yang tidak memakai celana panjang di musim dingin, tetapi tetap harus sejuk di cuaca dingin!
Java Stream API adalah konsep abstrak baru yang diperkenalkan di Java 8 untuk operasi gaya fungsional pada objek koleksi. Ini memungkinkan kami memproses pengumpulan data dengan cara yang lebih sederhana dan mudah dibaca, termasuk pemfilteran, pemetaan, pemfilteran, pengurutan, dan operasi lainnya.
Dengan menggunakan Stream API, kita dapat membuat Stream dengan berbagai cara, seperti konversi koleksi, konversi array, dll. Berikut adalah beberapa contoh dasar operasi Stream:
package cn.juwatech.stream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
// 筛选名字长度大于3的人,并转换为大写
List<String> filteredNames = names.stream()
.filter(name -> name.length() > 3)
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println("Filtered and transformed names: " + filteredNames);
// 计算所有名字长度的总和
int totalLength = names.stream()
.mapToInt(String::length)
.sum();
System.out.println("Total length of all names: " + totalLength);
// 判断集合中是否存在名字以'A'开头的
boolean anyStartsWithA = names.stream()
.anyMatch(name -> name.startsWith("A"));
System.out.println("Any name starts with 'A'? " + anyStartsWithA);
}
}
Selain operasi filter dasar, pemetaan dan pengurangan, Stream API juga menyediakan banyak operasi lanjutan, seperti pengurutan, pengelompokan, deduplikasi, dll. Berikut adalah beberapa contoh operasi lanjutan:
package cn.juwatech.stream;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class AdvancedStreamOperations {
public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// 对数字进行平方映射,然后筛选出大于20的数字,并按降序排序
List<Integer> result = numbers.stream()
.map(n -> n * n)
.filter(n -> n > 20)
.sorted((a, b) -> b - a)
.collect(Collectors.toList());
System.out.println("Result after mapping, filtering, and sorting: " + result);
// 将字符串列表拼接成一个字符串
List<String> words = Arrays.asList("Java", "Stream", "API", "is", "awesome");
String concatenatedString = words.stream()
.collect(Collectors.joining(" "));
System.out.println("Concatenated string: " + concatenatedString);
}
}
Stream API juga mendukung pemrosesan paralel, yang secara signifikan dapat meningkatkan efisiensi pengoperasian pada CPU multi-core.Kita dapat melakukan ini dengan meneleponparallel()
Metode mengubah aliran sekuensial menjadi aliran paralel.
List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva");
// 并行处理:筛选名字长度大于3的人,并转换为大写
List<String> parallelFilteredNames = names.parallelStream()
.filter(name -> name.length() > 3)
.map(String::toUpperCase)
.collect(Collectors.toList());
System.out.println("Parallel filtered and transformed names: " + parallelFilteredNames);
Melalui pengenalan artikel ini, kami memiliki pemahaman mendalam tentang penggunaan dasar Java Stream API dan fungsi lanjutannya. Stream API tidak hanya menyederhanakan operasi pengumpulan kode, tetapi juga meningkatkan keterbacaan dan pemeliharaan kode. Ini adalah bagian tak terpisahkan dari pengembangan Java modern.
Diproduksi oleh editor Micro-earning Taoke System 3.0, produk tersebut harus berkualitas tinggi. Harap sebutkan sumbernya saat mencetak ulang!