Rumah >Java >javaTutorial >Cara menggunakan Stream dalam Java untuk mengoptimumkan pertimbangan terlalu banyak syarat dalam if

Cara menggunakan Stream dalam Java untuk mengoptimumkan pertimbangan terlalu banyak syarat dalam if

王林
王林ke hadapan
2023-05-05 10:40:062354semak imbas

Gunakan Strim untuk mengoptimumkan situasi terlalu banyak keadaan penghakiman dalam jika

Jdk1.8 ciri baharu Strim mempunyai tiga API sedemikian, anyMatch, allMatch, noneMatch dan fungsi masing-masing adalah seperti berikut:

  • anyMatch: jika mana-mana satu syarat memenuhi syarat, maka kembalikan benar;

  • noneMatch: jika tiada syarat penghakiman memenuhi syarat, maka kembalikan benar;

  • Penggunaannya sebenarnya sangat mudah:

    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));
  • dapat dilihat, Menurut tiga kaedah pelaksanaan di atas, keadaan terlalu banyak keadaan penghakiman dalam if boleh dioptimumkan pada tahap tertentu Jadi, dalam senario yang manakah lebih sesuai untuk menggunakan pengoptimumannya?

Dalam pembangunan sebenar harian, kita mungkin pernah melihat kod seperti ini dengan banyak syarat penghakiman:

 if(StringUtils.isEmpty(str1) || StringUtils.isEmpty(str2) ||
    StringUtils.isEmpty(str3) || StringUtils.isEmpty(str4) ||
    StringUtils.isEmpty(str5) || StringUtils.isEmpty(str6)
   ){
 .....
}

Pada masa ini, anda boleh mempertimbangkan untuk menggunakan strim untuk mengoptimumkan, dan kod yang dioptimumkan adalah seperti berikut :

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

Selepas pengoptimuman seperti ini, adakah ia lebih elegan daripada keadaan yang ditimbun bersama dalam sekumpulan ifs?

Sudah tentu, ini hanya untuk atau syarat Jika anda menghadapi dan syarat, anda juga boleh menggunakan Strim untuk mengoptimumkan, contohnya:

if(StringUtils.isEmpty(str1) && StringUtils.isEmpty(str2) &&
   StringUtils.isEmpty(str3) && StringUtils.isEmpty(str4) &&
   StringUtils.isEmpty(str5) && StringUtils.isEmpty(str6)
){
   .....
}

Selepas menggunakan Strim untuk mengoptimumkan:

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

Atas ialah kandungan terperinci Cara menggunakan Stream dalam Java untuk mengoptimumkan pertimbangan terlalu banyak syarat dalam if. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Apakah pernyataan JavaArtikel seterusnya:Apakah pernyataan Java