Itérateur Scala


up.gif Scala Collections

Scala Iterator n'est pas une collection, c'est une méthode pour accéder à une collection. Les deux opérations de base de

iterator it sont next et hasNext.

L'appel de it.next() renverra l'élément suivant de l'itérateur et mettra à jour l'état de l'itérateur.

appelle it.hasNext() pour détecter s'il y a des éléments dans la collection.

Le moyen le plus simple de laisser l'itérateur renvoyer tous les éléments un par un est d'utiliser une boucle while :

object Test {
   def main(args: Array[String]) {
      val it = Iterator("Baidu", "Google", "php", "Taobao")
      
      while (it.hasNext){
         println(it.next())
      }
   }
}

Exécutez le code ci-dessus, le résultat de sortie est :

$ scalac Test.scala 
$ scala Test
Baidu
Google
php
Taobao

Trouver le maximum Avec l'élément minimum

vous pouvez utiliser les méthodes it.min et it.max pour trouver les éléments maximum et minimum du itérateur, l'exemple est le suivant :

object Test {
   def main(args: Array[String]) {
      val ita = Iterator(20,40,2,50,69, 90)
      val itb = Iterator(20,40,2,50,69, 90)
      
      println("最大元素是:" + ita.max )
      println("最小元素是:" + itb.min )

   }
}

Exécutez le code ci-dessus, le résultat de sortie est :

$ scalac Test.scala 
$ scala Test
最大元素是:90
最小元素是:2

Obtenez la longueur de l'itérateur

Vous pouvez utiliser Méthode it.size ou it.length pour afficher le nombre d'éléments dans l'itérateur. L'exemple est le suivant :

object Test {
   def main(args: Array[String]) {
      val ita = Iterator(20,40,2,50,69, 90)
      val itb = Iterator(20,40,2,50,69, 90)
      
      println("ita.size 的值: " + ita.size )
      println("itb.length 的值: " + itb.length )

   }
}

Exécutez le code ci-dessus, le résultat de sortie est :

$ scalac Test.scala 
$ scala Test
ita.size 的值: 6
itb.length 的值: 6

Méthodes communes de Scala Iterator

Le tableau suivant répertorie les méthodes courantes de Scala Iterator :

Mettez tous les éléments de l'itérateur dans un conteneur Iterator et renvoyez-le. Mettre tous les éléments de l'itérateur Organisez dans une liste et retournez Collectez toutes les paires clé-valeur de l'itérateur dans une Map et renvoyez-la.
Numéro de sérieMéthode et description
1

def hasNext : Boolean

S'il y a des éléments retournables, retournez true.

2

def next() : A

renvoie l'élément suivant de l'itérateur , et mettre à jour le statut de l'itérateur

3

def ++(that: => Iterator[A]) : Itérateur[A]

Fusionner deux itérateurs

4

def ++[ B >: A](that :=> GenTraversableOnce[B]): Iterator[B]

Fusionner deux itérateurs

5

def addString(b: StringBuilder): StringBuilder

Ajouter une chaîne à StringBuilder b

6

def addString(b: StringBuilder, sep: String): StringBuilder

Ajouter une chaîne à StringBuilder b et spécifier la notation du séparateur

7

def buffered : BufferedIterator[A]

Les itérateurs sont convertis en BufferedIterator

8

def contient(elem: Any): Booléen

Détecter l'itérateur Si l'élément spécifié est inclus dans

9

def copyToArray(xs : Array[A], start : Int, len : Int ): Unité

transmet la valeur sélectionnée dans l'itérateur au tableau

10

def count(p : (A) => Booléen) : Int

Renvoie le nombre total d'éléments dans les éléments de l'itérateur qui satisfont à la condition p.

11

def drop(n : Int) : Itérateur[A]

retour Jetez les n premiers éléments du nouvel ensemble

12

def dropWhile(p: (A) => Booléen) : Itérateur[A]

Jetez les éléments de gauche à droite jusqu'à ce que la condition p ne soit pas vraie

13

def duplicate : (Itérateur[A] , Iterator[A])

Génère deux itérateurs qui peuvent renvoyer respectivement tous les éléments de l'itérateur.

14

def existe (p : (A) => Booléen) : Booléen

Renvoie une valeur booléenne indiquant s'il existe un élément satisfaisant p parmi les éléments de l'itérateur.

15

filtre def (p : (A) => Booléen) : Itérateur[A]

Renvoie un nouvel itérateur pointant vers tous les éléments de l'élément itérateur qui satisfont à la condition p.

16

def filterNot(p: (A) => Booléen) : Itérateur[A]

Renvoie un itérateur pointant vers les éléments de l'itérateur qui ne satisfont pas à la condition p.

17

def find(p: (A) => Booléen) : Option[A]

Renvoie le premier élément qui satisfait p ou Aucun. Remarque : Si un élément satisfaisant la condition est trouvé, l'itérateur sera placé après l'élément ; s'il n'est pas trouvé, il sera placé à la fin.

18

def flatMap[B](f: (A) => GenTraversableOnce[B]) : Itérateur[ B]

Applique la fonction f à chaque élément de la séquence de l'itérateur et renvoie un itérateur pointant vers la séquence résultante.

19

def forall(p: (A) => Booléen): Booléen

Renvoie une valeur booléenne indiquant si les éléments pointés par elle satisfont p.

20

def foreach(f: (A) => Unité) : Unité

Exécuter le programme spécifié f

21

def hasDefiniteSize : Boolean

Renvoie vrai si l'itérateur a un nombre limité d'éléments (la valeur par défaut est équivalente à isEmpty)

22

def indexOf(elem: B ): Int

Renvoie le premier élément parmi les éléments de l'itérateur d'index égal à x. Remarque : l'itérateur passera en revue cet élément.

23

def indexOù(p : (A) => Booléen) : Int

Renvoie l'élément dont l'indice satisfait à la condition p parmi les éléments de l'itérateur. Remarque : l'itérateur passera en revue cet élément.

24

def isEmpty: Boolean

Vérifiez s'il est vide, renvoyez-le si c'est vide vrai, sinon faux (à l'opposé de hasNext).

25

def isTraversableAgain: Boolean

Teste si cet itérateur peut être parcouru à plusieurs reprises.

26

def length : Int

Renvoie le nombre d'éléments de l'itérateur.

27

def map[B](f: (A) => B) : Itérateur[B]

Le résultat du passage de chaque élément à la fonction f génère un nouvel itérateur.

28

def max : A

Renvoie le plus grand des éléments de l'itérateur.

29

def min : A

Renvoie le plus petit élément parmi les éléments de l'itérateur.

30

def mkString: String

Convertir tous les éléments de l'itérateur en chaînes .

31

def mkString(sep: String): String

itérera tous les éléments sont convertis en chaînes et le délimiteur est spécifié.

32

def nonEmpty: Boolean

Vérifie si l'élément est contenu dans le conteneur (équivalent à hasNext).

33

def padTo(len : Int, elem : A) : Itérateur[A]

Renvoyez d'abord tous les éléments de l'itérateur, ajoutez et copiez elem jusqu'à ce que la longueur atteigne len.

34

def patch (de : Int, patchElems : Iterator[B], remplacé : Int) : Itérateur[B ]

Renvoie un nouvel itérateur dans lequel les éléments remplacés à partir de l'élément from sont remplacés par l'élément pointé par l'itérateur.

35

def product : A

Renvoie l'élément numérique indexé par le produit itérateur .

36

def sameElements(that: Iterator[_]): Booléen

Jugement Indique si l'itérateur et les paramètres d'itérateur spécifiés renvoient les mêmes éléments dans l'ordre

37

def seq : Iterator[A]

Renvoie une vue en série de la collection

38

taille def : Int

Renvoie le nombre d'éléments de l'itérateur

39

def slice(from : Int, jusqu'à : Int) : Itérateur [A]

Renvoie un nouvel itérateur pointant vers le fragment commençant à partir de l'élément from et se terminant à l'élément jusqu'à ce que dans la séquence pointée par l'itérateur.

40

def sum : A

Renvoie la valeur de l'élément numérique indexé par l'itérateur et

41

def take(n: Int): Iterator[A]

Renvoie un nouvel itérateur sur les n premiers éléments.

42

def toArray : Array[A]

tous les itérateurs pointent vers The les éléments sont placés dans le tableau et renvoyés.

43

def toBuffer : Buffer[B]

tous les itérateurs pointent vers Elements sont copiés dans le tampon Buffer.

44

def toIterable : Iterable[A]

Renvoie un Itérable contenant tous les éléments de ce traversable ou itérateur. Cela ne se terminera pas pour les itérateurs infinis. >

46

def toList : List[A]

47

def toMap[T, U] : Map[T, U]

48

def toSeq : Seq[A]

Mettez tous les éléments du générateur dans un conteneur Seq et retournez-le.

49

def toString() : String

Convertir l'itérateur en chaîne

50

def zip[B](que : Itérateur[B]) : Itérateur[(A, B)

Renvoie un nouvel itérateur, pointant vers une séquence de tuples composée d'une correspondance biunivoque entre l'itérateur et l'itérateur spécifié pour cet élément

Pour plus de méthodes, veuillez vous référer à la documentation de l'API

up.gif Collection Scala