Heim  >  Artikel  >  Java  >  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

王林
王林nach vorne
2023-05-05 10:40:062279Durchsuche

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));
  • 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)
   ){
 .....
}

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))){
 .....
 }

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 der Verwendung von Stream zur Optimierung:

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

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Was sind Java-Behauptungen?Nächster Artikel:Was sind Java-Behauptungen?