Quel est exactement le stream de Java8?

J’ai lu Java 8 In Action et je sais donc ce qu’est Stream et comment l’utiliser. Mais du sharepoint vue de l’informatique, toutes les données doivent être stockées dans une sorte de structure de données. Alors,

  1. Comment stocker Stream?

  2. Comment Stream peut-il être en mesure d’effectuer autant d’opérations sur autant de types de collections (par exemple, un tableau, une liste chaînée, une carte)?

  3. Ou peut-être que Stream n’est qu’une interface et que toutes sortes de collections sont nécessaires pour mettre en œuvre les opérations spécifiées dans cette interface?

Merci!

Vous pouvez consulter le code source de Collection.stream() et voir comment il est géré. Il n’y a pas de magie, c’est juste du code Java standard impliquant des objects Stream , des Spliterators et d’autres classes associées.

Stream n’a pas non plus besoin de stocker des objects, car ils sont déjà stockés dans la Collection laquelle le Stream est créé. Un stream non parallèle est en réalité assez simple.

Ou peut-être que Stream n’est qu’une interface et que toutes sortes de collections sont nécessaires pour mettre en œuvre les opérations spécifiées dans cette interface?

C’est tout. Pour être correct: une collection doit implémenter un stream méthodes qui doit être implémenté comme vous l’avez expliqué.

Pourtant, l’interface Stream fournit des méthodes par défaut. Certains fournisseurs de stream effectuent leur propre stockage, par exemple des collections. D’autres n’ont pas besoin de stockage, par exemple les fournisseurs de numéros naturels, les fournisseurs de numéros aléatoires.