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.