Itérateur Scala
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 :
Numéro de série | Mé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. > | Mettez tous les éléments de l'itérateur dans un conteneur Iterator et renvoyez-le.
46 def toList : List[A] | Mettre tous les éléments de l'itérateur Organisez dans une liste et retournez |
47 def toMap[T, U] : Map[T, U]
| Collectez toutes les paires clé-valeur de l'itérateur dans une Map et renvoyez-la. |
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
Collection Scala