Sobes.tech
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 Collection veranderen meestal de toestand ervan. Operaties op Stream veranderen de oorspronkelijke gegevensbron niet.
  • Herbruikbaarheid: Collection kan meerdere keren worden gebruikt. Stream is meestal eenmalig na het uitvoeren van een terminale operatie.
  • Lui evalueren: Operaties op Stream worden "lui" uitgevoerd (alleen bij het aanroepen van een terminale operatie), wat efficiënt kan zijn voor grote datasets. Operaties op Collection worden onmiddellijk uitgevoerd.
  • Parallelisme: Stream ondersteunt efficiënt parallelisme via de methode parallelStream().

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