English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala Iterator (iteratore) non è una raccolta, è un metodo per accedere alla raccolta.
Le due operazioni di base dell'iteratore it sono next e hasNext.
Chiamare it.next() ritorna l'elemento successivo dell'iteratore e aggiorna lo stato dell'iteratore.
Chiamare it.hasNext() Per verificare se ci sono ancora elementi nella raccolta.
Il modo più semplice per far ritornare l'iteratore it tutti gli elementi uno per uno è utilizzare un ciclo while:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3codebox", "Taobao") while (it.hasNext){ println(it.next()) } } }
esegui il codice sopra riportato, il risultato sarà:
$ scalac Test.scala $ scala Test Baidu Google w3codebox Taobao
Puoi usare it.min e it.max Metodi per trovare i minimi e massimi elementi dall'iteratore. Esempio di seguito:
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("Il massimo elemento è: " + ita.max) println("Il minimo elemento è: " + itb.min) } }
esegui il codice sopra riportato, il risultato sarà:
$ scalac Test.scala $ scala Test Il massimo elemento è: 90 Il minimo elemento è: 2
Puoi usare it.size o it.length Metodi per visualizzare il numero di elementi dell'iteratore. Esempio di seguito:
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("il valore di ita.size: " + ita.size) println("il valore di itb.length: " + itb.length) } }
esegui il codice sopra riportato, il risultato sarà:
$ scalac Test.scala $ scala Test il valore di ita.size: 6 il valore di itb.length: 6
la tabella seguente elenca i metodi più comuni di Scala Iterator:
numero di sequenza | metodo e descrizione |
---|---|
1 | def hasNext: Boolean ritorna true se ci sono elementi disponibili da restituire. |
2 | def next(): A ritorna l'elemento successivo dell'iteratore e aggiorna lo stato dell'iteratore |
3 | def ++(that: => Iterator[A]): Iterator[A] unisci due iteratori |
4 | def ++[B >: A](that :=> GenTraversableOnce[B]): Iterator[B] unisci due iteratori |
5 | def addString(b: StringBuilder): StringBuilder aggiungi una stringa a StringBuilder b |
6 | def addString(b: StringBuilder, sep: String): StringBuilder aggiungi una stringa a StringBuilder b, specificando il separatore |
7 | def buffered: BufferedIterator[A] converti tutti gli iteratori in BufferedIterator |
8 | def contains(elem: Any): Boolean controlla se l'iteratore contiene l'elemento specificato |
9 | def copyToArray(xs: Array[A], start: Int, len: Int): Unit passa i valori selezionati dell'iteratore a un array |
10 | def count(p: (A) => Boolean): Int ritorna il numero totale di elementi dell'iteratore che soddisfano la condizione p. |
11 | def drop(n: Int): Iterator[A] ritorna una nuova raccolta senza i primi n elementi |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] Scarta gli elementi da sinistra a destra fino a quando la condizione p non è più soddisfatta. |
13 | def duplicate: (Iterator[A], Iterator[A]) Genera due iteratori che possono restituire rispettivamente tutti gli elementi degli iteratori. |
14 | def exists(p: (A) => Boolean): Boolean Restituisce un valore booleano che indica se esiste un elemento nell'iteratore che soddisfa la condizione p. |
15 | def filter(p: (A) => Boolean): Iterator[A] Restituisce un nuovo iteratore che punta agli elementi dell'iteratore che soddisfano la condizione p. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] Restituisce un iteratore che punta agli elementi dell'iteratore che non soddisfano la condizione p. |
17 | def find(p: (A) => Boolean): Option[A] Restituisce il primo elemento che soddisfa p o None. Attenzione: se viene trovato un elemento che soddisfa la condizione, l'iteratore viene posizionato dopo quell'elemento; se non viene trovato, viene posizionato alla fine. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B] Applica la funzione f a ogni elemento della sequenza dell'iteratore e restituisce un iteratore che punta alla sequenza dei risultati. |
19 | def forall(p: (A) => Boolean): Boolean Restituisce un valore booleano che indica se tutti gli elementi a cui si riferisce it soddisfano la condizione p. |
20 | def foreach(f: (A) => Unit): Unit Esegui il programma specificato f su ogni elemento restituito dall'iteratore. |
21 | def hasDefiniteSize: Boolean Restituisce true se il numero di elementi dell'iteratore è finito (equivale a isEmpty per default). |
22 | def indexOf(elem: B): Int Restituisce il primo elemento dell'iteratore con l'indice uguale a x. Attenzione: l'iteratore supera questo elemento. |
23 | def indexWhere(p: (A) => Boolean): Int Restituisce l'elemento dell'iteratore che ha l'indice soddisfacente la condizione p. Attenzione: l'iteratore supera questo elemento. |
24 | def isEmpty: Boolean Controlla se it è vuoto, se lo è restituisce true, altrimenti restituisce false (contrario di hasNext). |
25 | def isTraversableAgain: Boolean Verifica se questo Iterator può essere percorso ripetutamente. |
26 | def length: Int Restituisce il numero di elementi dell'iteratore. |
27 | def map[B](f: (A) => B): Iterator[B] Passa ogni elemento di it al funzione f e genera un nuovo iteratore con i risultati. |
28 | def max: A Restituisce l'elemento più grande degli elementi dell'iteratore. |
29 | def min: A Restituisce l'elemento più piccolo degli elementi dell'iteratore. |
30 | def mkString: String Converti tutti gli elementi dell'iteratore in una stringa. |
31 | def mkString(sep: String): String Converti tutti gli elementi dell'iteratore in una stringa, specificando il separatore. |
32 | def nonEmpty: Boolean Verifica se il contenitore contiene l'elemento (equivalente a hasNext). |
33 | def padTo(len: Int, elem: A): Iterator[A] Restituisce un iteratore che contiene tutti gli elementi dell'iteratore e aggiunge copie di elem fino a raggiungere la lunghezza len. |
34 | def patch(from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B] Restituisce un nuovo iteratore in cui gli elementi replacements a partire dal elemento di posizione from vengono sostituiti dagli elementi dell'iteratore. |
35 | def product: A Restituisce il prodotto degli elementi numerici dell'iteratore. |
36 | def sameElements(that: Iterator[_]): Boolean Determina se l'iteratore e l'iteratore specificato restituiscono gli elementi in modo sequenziale. |
37 | def seq: Iterator[A] Restituisce una vista seriale della collezione. |
38 | def size: Int Restituisce il numero di elementi dell'iteratore. |
39 | def slice(from: Int, until: Int): Iterator[A] Restituisce un nuovo iteratore che punta a un segmento della sequenza dell'iteratore, che va dall'elemento di posizione from all'elemento di posizione until. |
40 | def sum: A Restituisce la somma degli elementi numerici dell'iteratore. |
41 | def take(n: Int): Iterator[A] Restituisce un nuovo iteratore per i primi n elementi. |
42 | def toArray: Array[A] 将迭代器指向的所有元素归入数组并返回。 |
43 | def toBuffer: Buffer[B] 将迭代器指向的所有元素拷贝至缓冲区Buffer。 |
44 | def toIterable: Iterable[A] 返回一个包含此可遍历或迭代器所有元素的Iterable。对于无限迭代器,此操作不会终止。 |
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文档