ホームページ > Java > &#&チュートリアル > Java で Stream を使用して if の多すぎる条件の判定を最適化する方法

Java で Stream を使用して if の多すぎる条件の判定を最適化する方法

王林
リリース: 2023-05-05 10:40:06
転載
2453 人が閲覧しました

if で多すぎる判定条件を Stream で最適化する

Jdk1.8 新機能 Stream ストリームには、anyMatch、allMatch、noneMatch の 3 つの API があり、それぞれの機能は次のとおりです。

  • anyMatch: いずれかの条件が条件を満たす場合は true が返されます;

  • allMatch: すべての条件が条件を満たす場合は trueが返される;

  • noneMatch: どの判定条件も条件を満たさない場合はtrueを返す;

実際の使い方はVery 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));
ログイン後にコピー

以上の 3 つの実装方法により、if の判定条件が多すぎる状況をある程度最適化できることがわかります。その最適化を使用しますか?

日常の実際の開発では、このような多数の判定条件を備えたコードを目にしたことがあると思います。

 if(StringUtils.isEmpty(str1) || StringUtils.isEmpty(str2) ||
    StringUtils.isEmpty(str3) || StringUtils.isEmpty(str4) ||
    StringUtils.isEmpty(str5) || StringUtils.isEmpty(str6)
   ){
 .....
}
ログイン後にコピー

このとき、ストリーム フローを使用して最適化することを検討できます。最適化されたコードは次のとおりです。次のとおりです:

if(Stream.of(str1, str2, str3, str4,str5,str6).anyMatch(s->StringUtils.isEmpty(s))){
 .....
 }
ログイン後にコピー

このように最適化すると、多数の if に条件を積み上げたものよりもエレガントになりますか?

もちろん、これは or 条件のみに当てはまります。and 条件に遭遇した場合は、たとえば:

if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2) &&
   StringUtils.isEmpty(str3) && StringUtils.isEmpty(str4) &&
   StringUtils.isEmpty(str5) && StringUtils.isEmpty(str6)
){
   .....
}
ログイン後にコピー

Stream を使用して最適化した後:

if(Stream.of(str1, str2, str3, str4,str5,str6).allMatch(s->StringUtils.isEmpty(s))){
  .....
}
ログイン後にコピー
など、Stream を使用して最適化することもできます。

以上がJava で Stream を使用して if の多すぎる条件の判定を最適化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
ヘルプ: JAVA 暗号化データ PHP 復号化
から 1970-01-01 08:00:00
0
0
0
JAVAをインストールする
から 1970-01-01 08:00:00
0
0
0
Javaをインストールできません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート