Maison > Java > javaDidacticiel > Comment utiliser Stream en Java pour optimiser le jugement d'un trop grand nombre de conditions si

Comment utiliser Stream en Java pour optimiser le jugement d'un trop grand nombre de conditions si

王林
Libérer: 2023-05-05 10:40:06
avant
2381 Les gens l'ont consulté

Utilisez Stream pour optimiser le cas d'un trop grand nombre de conditions de jugement si

la nouvelle fonctionnalité Jdk1.8 Stream Stream possède trois de ces API, anyMatch, allMatch, noneMatch, leurs fonctions respectives sont les suivantes :

  • anyMatch : jugement que any l'une des conditions satisfait la condition, puis renvoie true ;

  • allMatch : si toutes les conditions sont satisfaites, alors true est renvoyé

  • noneMatch : si toutes les conditions ne sont pas satisfaites, alors true est renvoyé ;

La façon dont ils sont utilisés est en fait très simple :

List<String> list = Arrays.asList("a", "b", "c","d", "");
//任意一个字符串判断不为空则为true
boolean anyMatch = list.stream().anyMatch( s->StringUtils.isEmpty(s));
//所有字符串判断都不为空则为true
boolean allMatch = list.stream().allMatch( s->StringUtils.isEmpty(s));
//没有一个字符判断为空则为true
boolean noneMatch = list.stream().noneMatch( s->StringUtils.isEmpty(s));
Copier après la connexion

On peut voir que selon les trois méthodes de mise en œuvre ci-dessus, la situation de trop de conditions de jugement dans if peut être optimisée dans une certaine mesure. dans quel scénario est-il plus approprié d’utiliser son optimisation ?

Dans le développement réel quotidien, nous avons peut-être vu du code avec de nombreuses conditions de jugement comme celle-ci :

 if(StringUtils.isEmpty(str1) || StringUtils.isEmpty(str2) ||
    StringUtils.isEmpty(str3) || StringUtils.isEmpty(str4) ||
    StringUtils.isEmpty(str5) || StringUtils.isEmpty(str6)
   ){
 .....
}
Copier après la connexion

À l'heure actuelle, vous pouvez envisager d'utiliser le flux de flux pour optimiser le code optimisé comme suit :

if(Stream.of(str1, str2, str3, str4,str5,str6).anyMatch(s->StringUtils.isEmpty(s))){
 .....
 }
Copier après la connexion

Optimisé comme ça Enfin, n'est-ce pas plus élégant que les conditions empilées dans un tas de si ?

Bien sûr, ceci ne concerne que les conditions ou. Si vous rencontrez des conditions, vous pouvez également utiliser Stream pour optimiser, par exemple :

if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2) &&
   StringUtils.isEmpty(str3) && StringUtils.isEmpty(str4) &&
   StringUtils.isEmpty(str5) && StringUtils.isEmpty(str6)
){
   .....
}
Copier après la connexion

Après avoir utilisé Stream pour optimiser :

if(Stream.of(str1, str2, str3, str4,str5,str6).allMatch(s->StringUtils.isEmpty(s))){
  .....
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal