minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Como usar a API Java Stream para simplificar as operações de coleta?
Olá a todos, sou o editor do Weizhuan Taoke System 3.0 e também sou um programador que não usa ceroulas no inverno, mas ainda precisa estar fresco no frio!
A API Java Stream é um novo conceito abstrato introduzido no Java 8 para operações de estilo funcional em objetos de coleção. Permite-nos processar os dados da recolha de forma mais concisa e legível, incluindo filtragem, mapeamento, filtragem, ordenação e outras operações.
Usando a API Stream, podemos criar um Stream de várias maneiras, como conversão de coleção, conversão de array, etc. Aqui estão alguns exemplos básicos de operação 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);
}
}
Além das operações básicas de filtro, mapeamento e redução, a API Stream também oferece diversas operações avançadas, como classificação, agrupamento, desduplicação, etc. Aqui estão alguns exemplos de operações avançadas:
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);
}
}
A API Stream também suporta processamento paralelo, o que pode melhorar significativamente a eficiência operacional em CPUs multi-core.Podemos fazer isso ligandoparallel()
O método converte um fluxo sequencial em um fluxo paralelo.
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);
Através da introdução deste artigo, temos uma compreensão aprofundada do uso básico da API Java Stream e suas funções avançadas. A API Stream pode não apenas simplificar o código de operação de coleta, mas também melhorar a legibilidade e a manutenção do código. É uma parte indispensável do desenvolvimento Java moderno.
Produzido pelo editor do Micro-earning Taoke System 3.0, deve ser um produto de alta qualidade. Indique a fonte ao reimprimir!