Mi informacion de contacto
Correo[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
¿Cómo utilizar Java Stream API para simplificar las operaciones de recopilación?
Hola a todos, soy el editor de Weizhuang Taoke System 3.0 y también soy un programador que no usa calzoncillos largos en invierno, ¡pero aún así tiene que ser elegante en climas fríos!
La API Java Stream es un nuevo concepto abstracto introducido en Java 8 para operaciones de estilo funcional en objetos de colección. Nos permite procesar los datos de la recopilación de una manera más concisa y legible, incluido el filtrado, mapeo, filtrado, clasificación y otras operaciones.
Usando la API Stream, podemos crear un Stream de varias maneras, como conversión de colección, conversión de matriz, etc. A continuación se muestran algunos ejemplos básicos de operaciones de 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);
}
}
Además de las operaciones básicas de filtrado, mapeo y reducción, Stream API también proporciona una gran cantidad de operaciones avanzadas, como clasificación, agrupación, deduplicación, etc. A continuación se muestran algunos ejemplos de operaciones avanzadas:
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 también admite el procesamiento paralelo, lo que puede mejorar significativamente la eficiencia operativa en CPU de múltiples núcleos.Podemos hacerlo llamandoparallel()
El método convierte una secuencia secuencial en una secuencia paralela.
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);
A través de la introducción de este artículo, comprendemos en profundidad el uso básico de Java Stream API y sus funciones avanzadas. Stream API no solo puede simplificar el código de operación de recopilación, sino que también mejora la legibilidad y el mantenimiento del código. Es una parte indispensable del desarrollo moderno de Java.
Producido por el editor de Micro-earning Taoke System 3.0, debe ser un producto de alta calidad. ¡Indique la fuente al reimprimir!