Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot, ko nozīmē termins 'netermināla operācija', strādājot ar datu plūsmām Stream API?

sobes.tech AI

Atbilde no AI

Java Stream API operācijas ir sadalītas uz terminālām un ne-terminālām (starpposma) operācijām.

Ne-terminālā operācija ir tāda, kas atgriež jaunu straumi (Stream) un nekavējoties sāk datu apstrādi. Tā kalpo pārveidojumu ķēdes būvēšanai, piemēram, filtru, kartēšanas, kārtošanas.

Ne-terminālo operāciju piemēri:

  • filter()
  • map()
  • sorted()
  • distinct()

Šīs operācijas ir slinkas: tās netiek izpildītas, kamēr netiek izsaukta terminālā operācija, piemēram, forEach(), collect(), count().

Piemērs:

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // ne-termināla
    .map(String::toUpperCase)    // ne-termināla
    .forEach(System.out::println); // termināla

Tādējādi, ne-terminālās operācijas ļauj būvēt pārveidojumu ķēdi, bet terminālā sāk izpildi.