Sobes.tech
Junior — Middle

შეგიძლიათ ახსნათ, რას ნიშნავს ტერმინი 'საბოლოო ოპერაცია' მონაცემთა ნაკადებთან მუშაობისას Stream API-ში?

sobes.tech AI

პასუხი AI-სგან

Java Stream API-ში ოპერაციები იყოფა ტერმინალურ და არასრულად ტერმინალურ (შუალედურ) ოპერაციებად.

შუალედური ოპერაცია არის ოპერაცია, რომელიც აბრუნებს ახალ ნაკადს (Stream) და არ იწყებს მონაცემების დამუშავებას დაუყოვნებლივ. ის გამოიყენება ტრანსფორმაციების ჯაჭვის შექმნისთვის, მაგალითად, ფილტრაცია, მეპინგი, სორტირება.

შუალედური ოპერაციების მაგალითები:

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

ეს ოპერაციები არიან მაცდუნებელი: ისინი არ ხორციელდება, სანამ არ გამოიძახებთ ტერმინალურ ოპერაციას, მაგალითად, forEach(), collect(), count().

მაგალითი:

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

list.stream()
    .filter(s -> s.length() > 1) // შუალედური
    .map(String::toUpperCase)    // შუალედური
    .forEach(System.out::println); // ტერმინალური

ამ გზით, შუალედური ოპერაციები საშუალებას აძლევს შექმნას ტრანსფორმაციების ჯაჭვი, ხოლო ტერმინალური იწყებს შესრულებას.