Middle
Wat is het verschil tussen Collection en Stream in Java?
sobes.tech AI
Antwoord van AI
Collection — het datastructuur voor het opslaan van elementen, die een groep objecten vertegenwoordigt, zoals lijsten, verzamelingen. Het is een gegevensopslag die gericht is op het beheer van elementen.
Stream — is een sequentie van elementen uit een bron (bijvoorbeeld een collectie), die operaties ondersteunt voor het verwerken en analyseren van deze elementen in een functionele stijl. Het slaat geen gegevens op, maar vertegenwoordigt slechts een stroom gegevens voor het uitvoeren van operaties.
Belangrijkste verschillen:
- Doel:
Collection- gegevensopslag,Stream- gegevensverwerking. - Toestand verandering: Operaties op
Collectionveranderen meestal de toestand ervan. Operaties opStreamveranderen de oorspronkelijke gegevensbron niet. - Herbruikbaarheid:
Collectionkan meerdere keren worden gebruikt.Streamis meestal eenmalig na het uitvoeren van een terminale operatie. - Lui evalueren: Operaties op
Streamworden "lui" uitgevoerd (alleen bij het aanroepen van een terminale operatie), wat efficiënt kan zijn voor grote datasets. Operaties opCollectionworden onmiddellijk uitgevoerd. - Parallelisme:
Streamondersteunt efficiënt parallelisme via de methodeparallelStream().
Voorbeeld:
// Collection: opslag van herhaalbare gegevens
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// Stream: verwerking van gegevens uit de collectie
long count = names.stream() // maken van een stream uit de collectie
.filter(name -> name.startsWith("A")) // tussenoperatie
.count(); // terminal operatie