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

王林
Lepaskan: 2023-05-05 10:40:06
ke hadapan
2381 orang telah melayarinya

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));
    Salin selepas log masuk
  • 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)
   ){
 .....
}
Salin selepas log masuk

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))){
 .....
 }
Salin selepas log masuk

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)
){
   .....
}
Salin selepas log masuk

Selepas menggunakan Strim untuk mengoptimumkan:

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

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan