English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala Iterator (itérateur) n'est pas un ensemble, c'est une méthode pour accéder aux ensembles.
Les deux opérations de base de l'itérateur it sont next et hasNext.
appelle it.next() retourne l'élément suivant de l'itérateur et met à jour l'état de l'itérateur.
appelle it.hasNext() utilisé pour vérifier s'il reste des éléments dans la collection.
La manière la plus simple de faire en sorte que l'itérateur it retourne chaque élément individuellement est d'utiliser une boucle while :
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3codebox", "Taobao") while (it.hasNext){ println(it.next()) } } }
Exécuter le code suivant, le résultat de la sortie est :
$ scalac Test.scala $ scala Test Baidu Google w3codebox Taobao
Vous pouvez utiliser it.min et it.max La méthode recherche les éléments maximaux et minimaux dans l'itérateur, voici un exemple :
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("L'élément maximal est : ") + ita.max ) println("L'élément minimal est : ") + itb.min ) } }
Exécuter le code suivant, le résultat de la sortie est :
$ scalac Test.scala $ scala Test L'élément maximal est :90 L'élément minimal est :2
Vous pouvez utiliser it.size ou it.length Méthode pour voir le nombre d'éléments dans l'itérateur. Exemple 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("La valeur de ita.size : ") + ita.size ) println("La valeur de itb.length : ") + itb.length ) } }
Exécuter le code suivant, le résultat de la sortie est :
$ scalac Test.scala $ scala Test La valeur de ita.size : 6 La valeur de itb.length : 6
Le tableau suivant liste les méthodes couramment utilisées de Scala Iterator :
Numéro | Méthode et description |
---|---|
1 | def hasNext: Boolean Retourner true si il y a encore des éléments à renvoyer. |
2 | def next(): A Retourner l'élément suivant de l'itérateur et mettre à jour l'état de l'itérateur |
3 | def ++(that: => Iterator[A]): Iterator[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 de caractères à StringBuilder b |
6 | def addString(b: StringBuilder, sep: String): StringBuilder Ajouter une chaîne de caractères à StringBuilder b, et spécifier le séparateur |
7 | def buffered: BufferedIterator[A] Tous les itérateurs sont convertis en BufferedIterator |
8 | def contains(elem: Any): Boolean Vérifier si l'itérateur contient l'élément spécifié |
9 | def copyToArray(xs: Array[A], start: Int, len: Int): Unit Transmet les valeurs sélectionnées de l'itérateur à un tableau. |
10 | def count(p: (A) => Boolean): Int Retourne le nombre total d'éléments de l'itérateur qui satisfont la condition p. |
11 | def drop(n: Int): Iterator[A] Retourne un nouveau ensemble avec les n premiers éléments délaissés. |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] Délaisse les éléments de gauche à droite jusqu'à ce que la condition p ne soit plus valable. |
13 | def duplicate: (Iterator[A], Iterator[A]) Génère deux itérateurs qui peuvent retourner tous les éléments de l'itérateur. |
14 | def exists(p: (A) => Boolean): Boolean Retourne une valeur booléenne indiquant si l'itérateur contient un élément satisfaisant p. |
15 | def filter(p: (A) => Boolean): Iterator[A] Retourne un nouvel itérateur pointant vers tous les éléments de l'itérateur qui satisfont la condition p. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] Retourne un itérateur pointant vers les éléments de l'itérateur qui ne satisfont pas la condition p. |
17 | def find(p: (A) => Boolean): Option[A] Retourne le premier élément satisfaisant p ou None. Note : si un élément satisfaisant la condition est trouvé, l'itérateur est placé après cet élément ; sinon, il est placé à la fin. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B] Applique la fonction f à chaque élément de la séquence de l'itérateur et retourne un itérateur pointant vers la séquence de résultats. |
19 | def forall(p: (A) => Boolean): Boolean Retourne une valeur booléenne indiquant si tous les éléments pointés par it satisfont p. |
20 | def foreach(f: (A) => Unit): Unit Exécute la programme spécifiée sur chaque élément retourné par l'itérateur. |
21 | def hasDefiniteSize: Boolean Retourne true si le nombre d'éléments de l'itérateur est limité (par défaut équivalent à isEmpty) |
22 | def indexOf(elem: B): Int Retourne le premier élément de l'itérateur whose index equals x. Note : l'itérateur passe au-delà de cet élément. |
23 | def indexWhere(p: (A) => Boolean): Int Retourne l'élément de l'itérateur whose index satisfies the condition p. Note : l'itérateur passe au-delà de cet élément. |
24 | def isEmpty: Boolean Vérifie si it est vide, renvoie true s'il est vide, sinon renvoie false (l'inverse de hasNext). |
25 | def isTraversableAgain: Boolean Teste si cet itérateur peut être traversé plusieurs fois. |
26 | def length: Int Renvoie le nombre d'éléments de l'itérateur. |
27 | def map[B](f: (A) => B): Iterator[B] Renvoie un nouveau itérateur où chaque élément de it est passé à la fonction f et les résultats sont générés. |
28 | def max: A Renvoie l'élément le plus grand des éléments itérés par l'itérateur. |
29 | def min: A Renvoie l'élément le plus petit des éléments itérés par l'itérateur. |
30 | def mkString: String Convertit tous les éléments de l'itérateur en chaîne de caractères. |
31 | def mkString(sep: String): String Convertit tous les éléments de l'itérateur en chaîne de caractères, en spécifiant le séparateur. |
32 | def nonEmpty: Boolean Vérifie si le conteneur contient l'élément (équivalent à hasNext). |
33 | def padTo(len: Int, elem: A): Iterator[A] Renvoie tous les éléments de l'itérateur, ajoute des copies de elem jusqu'à ce que la longueur atteigne len. |
34 | def patch(from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B] Renvoie un nouvel itérateur où les éléments de n°from à n°replaced sont remplacés par les éléments pointés par l'itérateur. |
35 | def product: A Renvoie le produit des éléments numériques pointés par l'itérateur |
36 | def sameElements(that: Iterator[_]): Boolean Vérifie si l'itérateur et l'itérateur spécifié renvoient des éléments en ordre |
37 | def seq: Iterator[A] Renvoie une vue séquentielle de la collection |
38 | def size: Int Renvoie le nombre d'éléments de l'itérateur |
39 | def slice(from: Int, until: Int): Iterator[A] Renvoie un nouvel itérateur, pointant sur la séquence pointée par l'itérateur, à partir de l'élément de début n°from jusqu'à l'élément de fin n°until. |
40 | def sum: A Renvoie la somme des éléments numériques pointés par l'itérateur |
41 | def take(n: Int): Iterator[A] 返回前n个元素的新迭代器。 |
42 | def toArray: Array[A] 将迭代器指向的所有元素归入数组并返回。 |
43 | def toBuffer: Buffer[B] 将迭代器指向的所有元素拷贝至缓冲区Buffer。 |
44 | def toIterable: Iterable[A] 返回一个包含此可遍历或迭代器所有元素的可迭代对象。对于无限迭代器,这不会终止。 |
45 | def toIterator: Iterator[A] 把迭代器的所有元素归入一个Iterator容器并返回。 |
46 | def toList: List[A] 把迭代器的所有元素归入列表并返回 |
47 | def toMap[T, U]: Map[T, U] 将迭代器的所有键值对归入一个Map并返回。 |
48 | def toSeq: Seq[A] 将迭代器的所有元素归入一个Seq容器并返回。 |
49 | def toString(): String 将迭代器转换为字符串 |
50 | def zip[B](that: Iterator[B]): Iterator[(A, B)] 返回一个新迭代器,指向分别由迭代器和指定的迭代器that元素一一对应而成的二元组序列 |
更多方法可以参考 文档API