English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala Iterator (Iterator) ist keine Sammlung, sondern ein Verfahren zur Zugriff auf Sammlungen.
Die zwei grundlegenden Operationen des Iterators it sind next und hasNext.
Aufruf it.next() gibt den nächsten Element des Iterators zurück und aktualisiert den Status des Iterators.
Aufruf it.hasNext() zur Überprüfung, ob im Set noch Elemente vorhanden sind.
Die einfachste Methode, um den Iterator it zu verwenden, um alle Elemente einzeln zurückzugeben, ist die Verwendung eines while-Schleifen:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3codebox", "Taobao") while(it.hasNext){ println(it.next()) } } }
Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:
$ scalac Test.scala $ scala Test Baidu Google w3codebox Taobao
Sie können it.min und it.max Die Methode sucht das größte und kleinste Element im Iterator und zeigt ein Beispiel hierzu:
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("Der größte Wert ist: ") + ita.max ) println("Der kleinste Wert ist: " + itb.min ) } }
Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:
$ scalac Test.scala $ scala Test Der größte Wert ist:90 Der kleinste Wert ist:2
Sie können it.size oder it.length Methoden, um die Anzahl der Elemente im Iterator anzuzeigen. Ein Beispiel ist wie folgt:
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 wert: " + ita.size ) println("itb.length wert: " + itb.length ) } }
Führen Sie den folgenden Code aus, um das Ausgaberesultat zu erhalten:
$ scalac Test.scala $ scala Test ita.size wert: 6 itb.length wert: 6
Die folgende Tabelle listet die häufig verwendeten Methoden von Scala Iterator auf:
Nummer | Methode und Beschreibung |
---|---|
1 | def hasNext: Boolean Wenn es noch Elemente gibt, die zurückgegeben werden können, geben Sie true zurück. |
2 | def next(): A Geben Sie das nächste Element des Iterators zurück und aktualisieren Sie den Zustand des Iterators |
3 | def ++(that: => Iterator[A]): Iterator[A] Fügen Sie zwei Iteratoren zusammen |
4 | def ++[B >: A](that :=> GenTraversableOnce[B]): Iterator[B] Fügen Sie zwei Iteratoren zusammen |
5 | def addString(b: StringBuilder): StringBuilder Fügen Sie einen String zu einem StringBuilder b hinzu |
6 | def addString(b: StringBuilder, sep: String): StringBuilder Fügen Sie einen String zu einem StringBuilder b hinzu und geben Sie den Trennzeichen an |
7 | def buffered: BufferedIterator[A] Jeder Iterator wird in einen BufferedIterator umgewandelt |
8 | def contains(elem: Any): Boolean Überprüfen Sie, ob der Iterator das angegebene Element enthält |
9 | def copyToArray(xs: Array[A], start: Int, len: Int): Unit Überträgt ausgewählte Werte des Iterators an das Array |
10 | def count(p: (A) => Boolean): Int Rückgabe der Anzahl der Elemente des Iterators, die die Bedingung p erfüllen. |
11 | def drop(n: Int): Iterator[A] Rückgabe des neuen Sets mit den Elementen, die vor der Entfernung der ersten n Elemente vorhanden waren |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] Entfernt Elemente von links nach rechts, bis die Bedingung p nicht mehr erfüllt ist |
13 | def duplicate: (Iterator[A], Iterator[A]) Erzeugt zwei Iteratoren, die separately alle Elemente des Iterators zurückgeben können. |
14 | def exists(p: (A) => Boolean): Boolean Rückgabe eines Boolean-Werts, der angibt, ob in den Elementen des Iterators ein Element existiert, das die Bedingung p erfüllt. |
15 | def filter(p: (A) => Boolean): Iterator[A] Rückgabe eines neuen Iterators, der auf die Elemente des Iterators verweist, die die Bedingung p erfüllen. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] Rückgabe eines Iterators, der auf die Elemente des Iterators verweist, die die Bedingung p nicht erfüllen. |
17 | def find(p: (A) => Boolean): Option[A] Rückgabe des ersten Elements, das die Bedingung p erfüllt, oder None. Beachten Sie: Wenn ein Element gefunden wird, wird der Iterator auf das nächste Element gesetzt; wenn nicht, wird er auf das Ende gesetzt. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B] Wendet die Funktion f auf jedes Element der Sequenz des Iterators an und gibt einen Iterator zum Ziel-Sequence zurück. |
19 | def forall(p: (A) => Boolean): Boolean Rückgabe eines Boolean-Werts, der angibt, ob alle Elemente, auf die it zeigt, die Bedingung p erfüllen. |
20 | def foreach(f: (A) => Unit): Unit Führt die angegebene Operation f auf jedem Element des Iterators aus |
21 | def hasDefiniteSize: Boolean Rückgabe von true, wenn die Anzahl der Elemente des Iterators begrenzt ist (Standard ist gleich isEmpty) |
22 | def indexOf(elem: B): Int Rückgabe des ersten Elements des Iterators, dessen Index dem Wert x entspricht. Beachten Sie: Der Iterator überspringt dieses Element. |
23 | def indexWhere(p: (A) => Boolean): Int Rückgabe der Elemente des Iterators, deren Index die Bedingung p erfüllt. Beachten Sie: Der Iterator überspringt dieses Element. |
24 | def isEmpty: Boolean 检查it是否为空, 为空返回 true,否则返回false(与hasNext相反)。 |
25 | def isTraversableAgain: Boolean Tests whether this Iterator can be repeatedly traversed. |
26 | def length: Int 返回迭代器元素的数量。 |
27 | def map[B](f: (A) => B): Iterator[B] 将 it 中的每个元素传入函数 f 后的结果生成新的迭代器。 |
28 | def max: A 返回迭代器迭代器元素中最大的元素。 |
29 | def min: A 返回迭代器迭代器元素中最小的元素。 |
30 | def mkString: String 将迭代器所有元素转换成字符串。 |
31 | def mkString(sep: String): String 将迭代器所有元素转换成字符串,并指定分隔符。 |
32 | def nonEmpty: Boolean 检查容器中是否包含元素(相当于 hasNext)。 |
33 | def padTo(len: Int, elem: A): Iterator[A] 首先返回迭代器所有元素,追加拷贝 elem 直到长度达到 len。 |
34 | def patch(from: Int, patchElems: Iterator[B], replaced: Int): Iterator[B] 返回一个新迭代器,其中自第 from 个元素开始的 replaced 个元素被迭代器所指元素替换。 |
35 | def product: A 返回迭代器所指数值型元素的积。 |
36 | def sameElements(that: Iterator[_]): Boolean 判断迭代器和指定的迭代器参数是否依次返回相同元素 |
37 | def seq: Iterator[A] 返回集合的系列视图 |
38 | def size: Int 返回迭代器的元素数量 |
39 | def slice(from: Int, until: Int): Iterator[A] 返回一个新的迭代器,指向迭代器所指向的序列中从开始于第 from 个元素、结束于第 until 个元素的片段。 |
40 | def sum: A 返回迭代器所指数值型元素的和 |
41 | def take(n: Int): Iterator[A] Returns a new iterator with the first n elements. |
42 | def toArray: Array[A] puts all elements pointed to by the iterator into an array and returns. |
43 | def toBuffer: Buffer[B] Copies all elements pointed to by the iterator into the buffer Buffer. |
44 | def toIterable: Iterable[A] Returns an Iterable containing all elements of this traversable or iterator. This will not terminate for infinite iterators. |
45 | def toIterator: Iterator[A] puts all elements of the iterator into an Iterator container and returns. |
46 | def toList: List[A] puts all elements of the iterator into a list and returns |
47 | def toMap[T, U]: Map[T, U] puts all key-value pairs of the iterator into a Map and returns. |
48 | def toSeq: Seq[A] puts all elements of the iterator into a Seq container and returns. |
49 | def toString(): String Converts the iterator to a string |
50 | def zip[B](that: Iterator[B]): Iterator[(A, B)] Returns a new iterator pointing to the sequence of pairs formed by the elements of the iterator and the specified iterator that elements correspond to one by one |
More methods can be referred to API Documentation