Scala Iterator (Iteratoren)
Scala Iterator (Iteratoren) ist keine Sammlung, es ist ein Verfahren für den Zugang zu der Sammlung.
Zwei grundlegende Operationen iterator esnächste und hasNext ist.
Rufen Sieit.next () gibt einen Iterator auf das nächste Element, und aktualisieren Sie den Iterator Zustand.
Rufen Sieit.hasNext () wird verwendet , um festzustellen , ob es Elemente in der Sammlung sind.
Der Iterator liefert alle Elemente eins nach dem anderen der einfachste Weg, um eine while-Schleife zu verwenden ist:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3big", "Taobao") while (it.hasNext){ println(it.next()) } } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test Baidu Google w3big Taobao
Finden Sie die maximalen und minimalen Elemente
Sie könnenit.min und it.maxMethode verwenden , um die maximalen und minimalen Elemente aus der Iterator zu finden, Beispiele sind 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.max ) println("最小元素是:" + itb.min ) } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test 最大元素是:90 最小元素是:2
Get Iterator Länge
Sie könnenit.size oder it.lengthArt und Weise verwenden , um die Anzahl der Elemente in der Iterator zu sehen. Beispiele sind 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 的值: " + ita.size ) println("itb.length 的值: " + itb.length ) } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test ita.size 的值: 6 itb.length 的值: 6
Scala Iterator gängige Methode
In der folgenden Tabelle sind die Scala Iterator gängige Methoden:
Nein. | Verfahren und Beschreibung |
---|---|
1 | def hasNext: Boolean Wenn es Elemente gibt, die zurückgegeben werden können, return true. |
2 | (Def next): A Gibt das nächste Element in der Iterator und aktualisiert den Zustand der Iterator |
3 | def ++ (also: => Iterator [A]): Iterator [A] Zusammenführen von zwei Iteratoren |
4 | def ++ [B>: A] (das: => GenTraversableOnce [B]): Iterator [B] Zusammenführen von zwei Iteratoren |
5 | def addString (b: String): String Fügen Sie einen String b String |
6 | def addString (b: Stringbuilder, sep : String): String Fügen Sie einen String in String b, und geben Sie Begrenzer |
7 | def gepuffert: BufferedIterator [A] Iteratoren sind in BufferedIterator umgewandelt |
8 | def enthält (Elem: Any): Boolean Detector Iterator enthält das angegebene Element |
9 | def copyToArray (xs: Array [A ], Beginn: Int, len: Int): Einheit Iterator gewählte Wert wird auf ein Array übergeben |
10 | zählen def (p: (A) => Boolean): Int Gibt die Gesamtanzahl der Elemente in der Iterator Element erfüllt die Bedingung p. |
11 | def Drop (n: int): Iterator [A] Die neue Kollektion vor der Rückkehr verwirft n Elemente |
12 | def dropWhile (p: (A) => Boolean): Iterator [A] Verwerfen Element links nach rechts, bis die Bedingung nicht erfüllt p |
13 | def duplizieren: (Iterator [A] , Iterator [A]) Zwei waren in der Lage gibt einen Iterator Iterator aller Elemente zu erzeugen. |
14 | def existiert (p: (A) => Boolean): Boolean Es gibt einen Booleschen Wert, der angibt, ob es Elemente der Iterator p Elemente erfüllen. |
15 | Filter def (p: (A) => Boolean): Iterator [A] Gibt einen neuen Iterator Iterator Element in allen Elementen die Bedingungen von p zu erfüllen. |
16 | def filterNot (p: (A) => Boolean): Iterator [A] Gibt einen Iterator Iterator Element nicht die Bedingung p Elemente erfüllen. |
17 | finden def (p: (A) => Boolean): Option [A] Gibt das erste Element erfüllt p oder Keine. Hinweis: Wenn der Zustand des Elements festgestellt wird, wird der Iterator nach dem Element platziert werden, wenn sie nicht gefunden wird, wird es am Ende platziert werden. |
18 | def flatMap [B] (f: (A) => GenTraversableOnce [B]): Iterator [B] Für Iteratoren auf jedes Element in der Sequenz Funktion f angewendet wird, und gibt einen Zeiger auf die Ergebnisfolge Iteratoren. |
19 | def forall (p: (A) => Boolean): Boolean Es gibt einen Booleschen Wert, der angibt, ob es bezieht sich auf die Elemente p erfüllen. |
20 | def foreach (f: (A) => Unit): Einheit Perform auf jedem Element spezifiziert durch das Iterator Programm f zurück |
21 | def hasDefiniteSize: Boolean Wenn die Anzahl der Finite-Elemente-Iterator liefert true (Standardwert entspricht isEmpty) |
22 | def indexOf (Elem: B): Int Gibt einen Iterator der Elemente in dem Index gleich dem ersten Element von x. Hinweis: Der Iterator wird dieses Element überqueren. |
23 | def indexWhere (p: (A) => Boolean): Int Gibt einen Iterator der Elemente im Index die Bedingungen p Elemente zu erfüllen. Hinweis: Der Iterator wird dieses Element überqueren. |
24 | def isEmpty: Boolean Überprüfen Sie, ob es leer, leer true zurück, andernfalls gibt sie false zurück (gegenüber hasNext). |
25 | def isTraversableAgain: Boolean Prüft, ob diese Iterator wiederholt durchlaufen werden kann. |
26 | def Länge: Int Gibt die Anzahl der Elemente in den Iterator. |
27 | map def [B] (f: (A) => B): Iterator [B] Die Ergebnisse, nachdem es in die Funktion f jedes Elements geleitet neues Iterator zu erzeugen. |
28 | def max: A Gibt einen Iterator Iterator Element größte Element. |
29 | def min: A Gibt einen Iterator Iterator Element in den kleinsten Elemente. |
30 | def mkString: String Alle Elemente einen Iterator in einen String zu konvertieren. |
31 | def mkString (September: String): String Alle Elemente einen Iterator auf eine Zeichenfolge zu konvertieren, und Begrenzungszeichen angeben. |
32 | def NonEmpty: Boolean Prüfen Sie, ob der Behälter enthält Elemente (das Äquivalent von hasNext). |
33 | def padTo (len: Int, Elem : A): Iterator [A] Zunächst werden die Elemente einen Iterator zurückgibt, erreicht eine zusätzliche Kopie von Elem, bis die Länge len. |
34 | def Patch (aus: Int, patchElems : Iterator [B], ersetzt: Int): Iterator [B] Gibt einen neuen Iterator, der Elemente aus dem ersten Element vom Anfang ersetzt durch Elemente im Sinne von Iteratoren ersetzt werden. |
35 | def Produkt: Zurück Produkt im Sinne der numerischen Element Iteratoren. |
36 | def sameElements (dh: Iterator [_ ]): Boolean Iteratoren und Iterator Parameter analysieren wiederum spezifiziert sind wieder das gleiche Element |
37 | def seq: Iterator [A] Rückansicht der Sammlung Reihe |
38 | def Größe: Int Gibt die Anzahl der Elemente in einem Iterator |
39 | def Scheibe (aus: Int, bis : Int): Iterator [A] Gibt einen neuen Iterator, ein Iterator zeigt auf die Sequenzfragment von Anfang an auf das erste Element von einem Ende der ersten bis Elemente. |
40 | def Summe: A Gibt einen Iterator Bezugnahme auf numerische Elemente und |
41 | nehmen def (n: int): Iterator [A] Gibt ein neues Iterator ersten n Elemente. |
42 | def toArray: Array [A] Alle Elemente Iterator zeigt in einem Array und kehrt zurück. |
43 | def toBuffer: Puffer [B] Alle Elemente Iterator zeigt auf die Kopierpuffer Buffer. |
44 | def toIterable: Iterable [A] Gibt ein Iterable alle Elemente dieser verfahrbaren oder Iterator enthält. Dies wird nicht für unendliche Iteratoren beenden. |
45 | def toIterator: Iterator [A] Alle Elemente Iterator Iterator in einen Behälter und zurückgegeben. |
46 | def ToList: Liste [A] Alle Elemente des Iterators in eine Liste und kehrt zurück |
47 | def toMap [T, U]: Map [T, U] Alle Schlüssel Iterator Paar in eine Karte und kehrt zurück. |
48 | def toSeq: Seq [A] Im Namen der alle Elemente in einen Behälter und gibt Seq. |
49 | def toString (): String Iterator umgewandelt in einen String |
50 | def zip [B] (das: Iterator [B]): Iterator [(A, B) Gibt einen neuen Iterator Zeige Tupel Sequenz entsprechen jeweils den angegebenen Iteratoren und Iteratoren, die Element aus der |
Weitere Möglichkeiten , um zu verweisen der API - Dokumentation