Scala Iterator
Scala Collections
Scala Iterator bukan koleksi, ia adalah kaedah untuk mengakses koleksi. Dua operasi asas
iterator it ialah seterusnya dan hasNext.
Memanggil it.next() akan mengembalikan elemen seterusnya bagi iterator dan mengemas kini keadaan iterator.
memanggil it.hasNext() untuk mengesan sama ada terdapat sebarang elemen dalam koleksi.
Cara paling mudah untuk membiarkan iterator ia mengembalikan semua elemen satu demi satu ialah menggunakan gelung sementara:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "php", "Taobao") while (it.hasNext){ println(it.next()) } } }
Laksanakan kod di atas, hasil output ialah:
$ scalac Test.scala $ scala Test Baidu Google php Taobao
Cari maksimum Dengan elemen minimum
anda boleh menggunakan kaedah it.min dan it.max untuk mencari elemen maksimum dan minimum daripada iterator, contohnya adalah seperti berikut:
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 ) } }
Laksanakan kod di atas, hasil output ialah:
$ scalac Test.scala $ scala Test 最大元素是:90 最小元素是:2
Dapatkan panjang iterator
Anda boleh menggunakan Kaedah it.size atau it.length untuk melihat bilangan elemen dalam iterator. Contohnya adalah seperti berikut:
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 ) } }
Laksanakan kod di atas, hasil output ialah:
$ scalac Test.scala $ scala Test ita.size 的值: 6 itb.length 的值: 6
Kaedah biasa Scala Iterator
Jadual berikut menyenaraikan yang biasa digunakan kaedah Scala Iterator:
Nombor siri | Kaedah dan penerangan |
---|---|
1 | def hasNext: Boolean Jika terdapat elemen boleh dikembalikan, kembalikan benar. |
2 | def next(): A mengembalikan elemen lelaran seterusnya , dan kemas kini status iterator |
3 | def ++(that: => Iterator[A]) : Iterator[A] Gabungkan dua iterator |
4 | def ++[ B >: A](bahawa :=> GenTraversableOnce[B]): Iterator[B] Gabungkan dua iterator |
5 | def addString(b: StringBuilder): StringBuilder Tambah rentetan pada StringBuilder b |
6 | def addString(b: StringBuilder, sep: String): StringBuilder Tambah rentetan pada StringBuilder b dan nyatakan Notasi pemisah |
7 | def buffered: BufferedIterator[A] Iterators ditukar kepada BufferedIterator |
8 | def mengandungi(elemen: Mana-mana): Boolean Kesan iterator Sama ada elemen yang dinyatakan disertakan dalam |
9 | def copyToArray(xs: Array[A], start: Int, len: Int ): Unit menghantar nilai yang dipilih dalam iterator ke tatasusunan |
10 | def count(p: (A) => Boolean): Int Mengembalikan jumlah bilangan elemen dalam elemen lelaran yang memenuhi syarat p. |
11 | def drop(n: Int): Iterator[A] return Buang n elemen pertama set baharu |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] Buang elemen dari kiri ke kanan sehingga syarat p tidak benar |
13 | def duplikat: (Iterator[A] , Iterator[A]) Menghasilkan dua iterator yang boleh mengembalikan semua elemen iterator masing-masing. |
14 | def wujud(p: (A) => Boolean): Boolean Mengembalikan nilai Boolean yang menunjukkan sama ada terdapat unsur yang memenuhi p di antara elemen lelaran. |
15 | def filter(p: (A) => Boolean): Iterator[A] Mengembalikan lelaran baharu yang menunjuk kepada semua elemen dalam elemen lelaran yang memenuhi syarat p. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] Mengembalikan iterator yang menunjuk kepada elemen dalam iterator yang tidak memenuhi syarat p. |
17 | def find(p: (A) => Boolean): Pilihan[A] Mengembalikan elemen pertama yang memenuhi p atau Tiada. Nota: Jika elemen yang memenuhi syarat ditemui, iterator akan diletakkan selepas elemen jika tidak ditemui, ia akan diletakkan di penghujung. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[ B] Menggunakan fungsi f pada setiap elemen dalam jujukan lelaran dan mengembalikan lelaran yang menunjuk kepada jujukan yang terhasil. |
19 | def forall(p: (A) => Boolean): Boolean Mengembalikan nilai Boolean yang menunjukkan sama ada elemen yang ditunjuk olehnya memenuhi p. |
20 | def foreach(f: (A) => Unit): Unit Laksanakan atur cara yang ditentukan f |
21 | def hasDefiniteSize: Boolean Kembalikan benar jika iterator mempunyai bilangan elemen yang terhad (lalai adalah bersamaan dengan isEmpty) |
22 | def indexOf(elem: B ): Int Mengembalikan elemen pertama antara elemen lelaran dengan indeks sama dengan x. Nota: iterator akan pergi ke elemen ini. |
23 | def indexWhere(p: (A) => Boolean): Int Mengembalikan elemen yang subskripnya memenuhi syarat p antara elemen lelaran. Nota: iterator akan pergi ke elemen ini. |
24 | def isEmpty: Boolean Periksa sama ada kosong, kembalikan jika ia kosong benar, sebaliknya palsu (bertentangan dengan hasNext). |
25 | def isTraversableAgain: Boolean Menguji sama ada Iterator ini boleh dilalui berulang kali. |
26 | def length: Int Mengembalikan bilangan elemen lelaran. |
27 | def map[B](f: (A) => B): Iterator[B] Hasil penghantaran setiap elemen di dalamnya untuk berfungsi f menjana lelaran baharu. |
28 | def maks: A Mengembalikan elemen elemen lelaran terbesar. |
29 | def min: A Mengembalikan elemen terkecil antara elemen lelaran. |
30 | def mkString: String Tukar semua elemen lelaran kepada rentetan . |
31 | def mkString(sep: String): String akan mengulang semua Elemen ditukar kepada rentetan dan pembatas ditentukan. |
32 | def nonEmpty: Boolean Menyemak sama ada elemen terkandung dalam bekas (bersamaan dengan hasNext). |
33 | def padTo(len: Int, elem: A): Iterator[A] Mula-mula kembalikan semua elemen iterator, tambah dan salin elem sehingga panjangnya mencapai len. |
34 | def patch(dari: Int, patchElems: Iterator[B], digantikan: Int): Iterator[B ] Mengembalikan lelaran baharu di mana elemen yang diganti bermula dari elemen dari digantikan dengan elemen yang ditunjuk oleh lelaran. |
35 | def product: A Mengembalikan elemen angka yang diindeks oleh produk iterator . |
36 | def sameElements(that: Iterator[_]): Boolean Penghakiman Sama ada lelaran dan parameter lelaran yang ditentukan mengembalikan elemen yang sama dalam urutan |
37 | def seq: Iterator[A] Mengembalikan paparan siri koleksi |
38 | saiz def: Int Mengembalikan bilangan elemen lelaran |
39 | def slice(dari: Int, until : Int): Iterator [A] Mengembalikan lelaran baharu yang menunjuk kepada serpihan bermula dari elemen dari dan berakhir pada elemen sehingga dalam urutan yang ditunjuk oleh lelaran. |
40 | def sum: A Mengembalikan nilai unsur angka yang diindeks oleh iterator dan |
41 | def take(n: Int): Iterator[A] Mengembalikan lelaran baharu pada n elemen pertama. |
42 | def toArray: Array[A] semua iterator menghala ke The elemen diberikan kepada tatasusunan dan dikembalikan. |
43 | def toBuffer: Buffer[B] semua iterator menghala ke Elements disalin ke Penampan penimbal. |
44 | def toIterable: Iterable[A] Mengembalikan Iterable yang mengandungi semua elemen daripada boleh dilalui atau iterator ini. Ini tidak akan ditamatkan untuk iterator tak terhingga. |
45 | def toIterator: Iterator [A] 🎜 > Masukkan semua elemen iterator ke dalam bekas Iterator dan kembalikannya. |
def toList: List[A] Letakkan semua elemen iterator Susun ke dalam senarai dan kembalikan | |
def toMap[T, U]: Map[T, U] Kumpulkan semua pasangan nilai kekunci lelaran ke dalam Peta dan kembalikannya. | |
def toSeq: Seq[A] Masukkan semua elemen penjana ke dalam bekas Seq dan kembalikan. | |
49 | def toString(): String Tukar lelaran kepada rentetan |
50 | def zip[B](itu: Iterator[B]): Iterator[(A, B) Mengembalikan iterator baru, menunjuk kepada urutan tupel yang terdiri daripada surat-menyurat antara satu-ke-satu antara iterator dan iterator yang ditentukan elemen itu. 🎜>Untuk kaedah lanjut, sila rujuk dokumentasi API |