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));
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) ){ ..... }
À 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))){ ..... }
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) ){ ..... }
Après avoir utilisé Stream pour optimiser :
if(Stream.of(str1, str2, str3, str4,str5,str6).allMatch(s->StringUtils.isEmpty(s))){ ..... }
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!