2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Comment utiliser l'API Java Stream pour simplifier les opérations de collecte ?
Bonjour à tous, je suis l'éditeur de Weizhuan Taoke System 3.0, et je suis aussi un programmeur qui ne porte pas de caleçon long en hiver, mais qui doit quand même être au frais par temps froid !
L'API Java Stream est un nouveau concept abstrait introduit dans Java 8 pour les opérations de style fonctionnel sur les objets de collection. Il nous permet de traiter les données de collecte de manière plus simple et plus lisible, y compris le filtrage, le mappage, le filtrage, le tri et d'autres opérations.
À l'aide de l'API Stream, nous pouvons créer un Stream de différentes manières, telles que la conversion de collection, la conversion de tableau, etc. Voici quelques exemples d’opérations de base 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);
}
}
En plus des opérations de base de filtrage, de mappage et de réduction, l'API Stream fournit également une multitude d'opérations avancées, telles que le tri, le regroupement, la déduplication, etc. Voici quelques exemples d’opérations avancées :
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);
}
}
L'API Stream prend également en charge le traitement parallèle, ce qui peut améliorer considérablement l'efficacité opérationnelle des processeurs multicœurs.Nous pouvons le faire en appelantparallel()
La méthode convertit un flux séquentiel en flux parallèle.
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);
Grâce à l'introduction de cet article, nous avons une compréhension approfondie de l'utilisation de base de l'API Java Stream et de ses fonctions avancées. L'API Stream peut non seulement simplifier le code de l'opération de collecte, mais également améliorer la lisibilité et la maintenabilité du code. C'est un élément indispensable du développement Java moderne.
Produit par l'éditeur de Micro-earning Taoke System 3.0, il doit s'agir d'un produit de haute qualité. Veuillez indiquer la source lors de la réimpression !