Sobes.tech
Middle

Koja je svrha korišćenja streamova u novoj verziji Jave?

sobes.tech АИ

Одговор од АИ

Poštedite rad sa kolekcijama podataka.

Glavni ciljevi:

  • Funkcionalnost: Omogućavaju korišćenje lambda izraza i drugih funkcionalnih interfejsa za deklarativnu obradu podataka.
  • Paralelizam: Olakšavaju paralelno izvršavanje operacija nad kolekcijama bez eksplicitnog upravljanja nitima.
  • Nepromenljivost: Streamovi ne menjaju originalnu kolekciju. Operacije na streamovima kreiraju nove streamove ili završne rezultate.
  • Performanse: Lazy evaluation (leno procenjivanje) omogućava izvršavanje operacija samo kada je to potrebno.
  • Čitljivost: Kod postaje kraći i izražajniji u poređenju sa tradicionalnim petljama.

Primer upotrebe:

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class StreamExample {
    public static void main(String[] args) {
        List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape");

        // Filtriranje i transformacija pomoću streamova
        List<String> filteredFruits = fruits.stream()
                                           .filter(s -> s.startsWith("a")) // Samo oni koji počinju sa "a"
                                           .map(String::toUpperCase)     // Pretvaranje u velika slova
                                           .collect(Collectors.toList());   // Sakupljanje u novu listu

        System.out.println(filteredFruits); // Izlaz: [APPLE]
    }
}

Ukratko, streamovi čine kod modernijim, efikasnijim i čitljivijim pri radu sa kolekcijama podataka.