Heim > Java > javaLernprogramm > So verwenden Sie Stream in Java, um die Beurteilung zu vieler Bedingungen in if zu optimieren

So verwenden Sie Stream in Java, um die Beurteilung zu vieler Bedingungen in if zu optimieren

王林
Freigeben: 2023-05-05 10:40:06
nach vorne
2401 Leute haben es durchsucht

Verwenden Sie Stream, um den Fall zu vieler Beurteilungsbedingungen zu optimieren, wenn

Jdk1.8 neue Funktion Stream Stream verfügt über drei solcher APIs, anyMatch, allMatch, noneMatch, ihre jeweiligen Funktionen sind wie folgt:

  • anyMatch: Beurteilung, dass irgendein Eine der Bedingungen erfüllt die Bedingung und gibt dann „true“ zurück.

  • allMatch: Wenn alle Bedingungen erfüllt sind, wird „true“ zurückgegeben.

  • Die Art und Weise, wie sie verwendet werden, ist eigentlich ganz einfach:

    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));
    Nach dem Login kopieren
  • Es ist ersichtlich, dass gemäß den oben genannten drei Implementierungsmethoden die Situation zu vieler Beurteilungsbedingungen in gewissem Maße optimiert werden kann. In welchem ​​Szenario ist die Optimierung besser geeignet?

In der täglichen tatsächlichen Entwicklung haben wir möglicherweise Code mit vielen Beurteilungsbedingungen wie diesem gesehen:

 if(StringUtils.isEmpty(str1) || StringUtils.isEmpty(str2) ||
    StringUtils.isEmpty(str3) || StringUtils.isEmpty(str4) ||
    StringUtils.isEmpty(str5) || StringUtils.isEmpty(str6)
   ){
 .....
}
Nach dem Login kopieren

Zu diesem Zeitpunkt können Sie erwägen, den Stream-Flow zur Optimierung zu verwenden. Der optimierte Code lautet wie folgt:

if(Stream.of(str1, str2, str3, str4,str5,str6).anyMatch(s->StringUtils.isEmpty(s))){
 .....
 }
Nach dem Login kopieren

Optimiert wie folgt: Ist das nicht eleganter als die im Wenn-Stapel zusammengetürmten Bedingungen?

Natürlich gilt dies nur für oder-Bedingungen. Sie können Stream auch zur Optimierung verwenden, zum Beispiel:

if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2) &&
   StringUtils.isEmpty(str3) && StringUtils.isEmpty(str4) &&
   StringUtils.isEmpty(str5) && StringUtils.isEmpty(str6)
){
   .....
}
Nach dem Login kopieren

Nach der Verwendung von Stream zur Optimierung:

if(Stream.of(str1, str2, str3, str4,str5,str6).allMatch(s->StringUtils.isEmpty(s))){
  .....
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo verwenden Sie Stream in Java, um die Beurteilung zu vieler Bedingungen in if zu optimieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage