Je veux utiliser la classe Stream dans scala pour répéter indéfiniment une liste donnée.Scala, répète une liste infinie infiniment
Par exemple la liste (1,2,3,4,5) Je veux créer un flux qui me donne (1,2,3,4,5,1,2,3,4,5,1 , 2,3 ....)
Pour que je puisse envelopper l'opération de prise. Je sais que cela peut être mis en œuvre d'autres façons, mais je veux le faire de cette façon pour une raison quelconque, juste humour moi :)
Donc l'idée est que, avec ce cycle infini créé à partir d'une liste, je peux utiliser prendre opération, et quand il atteint la fin de la liste il cycles.
Comment créer un flux qui répète simplement une liste donnée?
J'ai aimé cette réponse le mieux, continuellement sur l'objet compagnon Stream est vraiment ce que je cherchais. Aussi combiné avec aplatir et tolist je reçois exactement ce que je veux :) BTW, somestream.join.take (10) .toList, quelqu'un peut élaborer sur le besoin de notation object.function() et pourquoi il est nécessaire ici? Habituellement, vous pouvez avoir "seq prendre 10", et quelque chose comme "se faire prendre 10.toList" fonctionne? – Felix
Je pense qu'il vaut la peine de noter que "Stream.continually()" n'était apparemment pas présent dans les versions précédentes de 2.8 – Felix
Dans 2.7, 'Stream.continually' était' Stream.const' et 'streams.flatten' était' Stream.concat (flux) ' – retronym