English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Scala Iterator (الم迭代ر) ليس مجموعة، بل هو طريقة لاستخدام المجموعات.
العمليات الأساسية للم迭代ر it هما next و hasNext.
الإتصال it.next() سيقوم بتحويل العنصر التالي للم迭代ر وتحديث حالة الم迭代ر.
الإتصال it.hasNext() للتحقق من وجود عناصر أخرى في المجموعة.
أسهل طريقة لجعل الم迭代ر it يعود بكل العناصر بشكل فردي هي استخدام حلقة while:
object Test { def main(args: Array[String]) { val it = Iterator("Baidu", "Google", "w3codebox", "Taobao") while (it.hasNext){ println(it.next()) } } }
إذا قمت بتشغيل الكود أعلاه، فإن النتيجة ستكون:
$ scalac Test.scala $ scala Test Baidu Google w3codebox Taobao
يمكنك استخدام it.min و it.max طريقة لبحث عن العناصر الأكبر والأصغر في الم迭代ر، مثال كما يلي:
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 ) } }
إذا قمت بتشغيل الكود أعلاه، فإن النتيجة ستكون:
$ scalac Test.scala $ scala Test العدد الأكبر هو: 90 العدد الأصغر هو: 2
يمكنك استخدام it.size أو it.length طريقة لعرض عدد العناصر في م迭代ر. مثال كما يلي:
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 ) } }
إذا قمت بتشغيل الكود أعلاه، فإن النتيجة ستكون:
$ scalac Test.scala $ scala Test قيمة ita.size هي: 6 قيمة itb.length هي: 6
في الجدول أدناه تم إدراج القائمة من الطرق المعتادة لم迭代ر Scala:
الترقيم | الطريقة والوصف |
---|---|
1 | def hasNext: Boolean تعود صحيحة إذا كانت هناك عناصر يمكن العودة منها |
2 | def next(): A يعيد العنصر التالي من الم迭代ر ويحدث حالة الم迭代ر |
3 | def ++(that: => Iterator[A]): Iterator[A] تقوم بدمج اثنين من الم迭代رات |
4 | def ++[B >: A](that :=> GenTraversableOnce[B]): Iterator[B] تقوم بدمج اثنين من الم迭代رات |
5 | def addString(b: StringBuilder): StringBuilder تضيف نصًا إلى StringBuilder b |
6 | def addString(b: StringBuilder, sep: String): StringBuilder تضيف نصًا إلى StringBuilder b، وتحدد علامة التباين |
7 | def buffered: BufferedIterator[A] تقوم بتحويل جميع الم迭代رات إلى BufferedIterator |
8 | def contains(elem: Any): Boolean تقوم بفحص ما إذا كان الم迭代ر يحتوي على العنصر المحدد |
9 | def copyToArray(xs: Array[A], start: Int, len: Int): Unit تقوم بتقديم القيم المحددة من الم迭代ر إلى مصفوفة |
10 | def count(p: (A) => Boolean): Int يعيد عدد العناصر في الم迭代ر التي تفي بالشرط p |
11 | def drop(n: Int): Iterator[A] يعيد مجموعة جديدة بعد إسقاط n العناصر الأولى |
12 | def dropWhile(p: (A) => Boolean): Iterator[A] يتم التخلص من العناصر من اليسار إلى اليمين حتى لا satisfies الصفحة p. |
13 | def duplicate: (Iterator[A], Iterator[A]) يتم إنشاء اثنين من الم迭代رات يمكن أن تعود بأكبر عدد ممكن من العناصر في الم迭代ر. |
14 | def exists(p: (A) => Boolean): Boolean يعود بالصحيح إذا كان هناك عنصر satisfies الصفحة p في عناصر الم迭代ر. |
15 | def filter(p: (A) => Boolean): Iterator[A] يعود بالم迭代ر الجديد الذي يشير إلى جميع العناصر التي satisfy الصفحة p. |
16 | def filterNot(p: (A) => Boolean): Iterator[A] يعود بالم迭代ر الذي يشير إلى العناصر التي لا satisfy الصفحة p. |
17 | def find(p: (A) => Boolean): Option[A] يعود بالعنصر الأول الذي satisfies الصفحة p أو None. ملاحظة: إذا تم العثور على عنصر satisfies الصفحة، سيتم وضع الم迭代ر بعد هذا العنصر؛ وإذا لم يتم العثور على أي شيء، سيتم وضع الم迭代ر في النهاية. |
18 | def flatMap[B](f: (A) => GenTraversableOnce[B]): Iterator[B] يطبق الدالة f على كل عنصر من سلسلة الم迭代ر، ويعود بالم迭代ر الذي يشير إلى سلسلة النتائج. |
19 | def forall(p: (A) => Boolean): Boolean يعود بالصحيح إذا كانت جميع العناصر التي يشير إليها it satisfy الصفحة p. |
20 | def foreach(f: (A) => Unit): Unit يتم تنفيذ البرنامج المحدد f على كل عنصر يعود به الم迭代ر. |
21 | def hasDefiniteSize: Boolean يعود بالصحيح إذا كان عدد عناصر الم迭代ر محددًا (الافتراض يعادله isEmpty). |
22 | def indexOf(elem: B): Int يعود بالعنصر الأول الذي equals إلى x من عناصر الم迭代ر. ملاحظة: الم迭代ر سيقفز على هذا العنصر. |
23 | def indexWhere(p: (A) => Boolean): Int يعود بالعنصر الذي ي satisfy الصفحة p من عناصر الم迭代ر. ملاحظة: الم迭代ر سيقفز على هذا العنصر. |
24 | def isEmpty: Boolean تتأكد من أن it فارغ، إذا كان فارغًا يعود بالصحيح، وإلا يعود بالخطأ (عكس hasNext). |
25 | def isTraversableAgain: Boolean يختبر ما إذا كان يمكن تمرير هذا الم迭代ر مرارًا وتكرارًا. |
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] يعيد م迭代ر جديد حيث يتم استبدال 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] يعيد م迭代ر جديد يشير إلى قطعة من السلسلة التي تبدأ من العنصر من الرقم من، وتنتهي عند العنصر من الرقم حتى. |
40 | def sum: A يعيد مجموع عنصر النوع النقدي الذي يشير إليه الم迭代ر. |
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] يضع جميع المفاتيح والقيم في خريطة ويقوم بإرجاعها |
48 | def toSeq: Seq[A] يضع جميع العناصر في محول Seq ويقوم بإرجاعها |
49 | def toString(): String يحوّل المحول إلى سلسلة |
50 | def zip[B](that: Iterator[B]): Iterator[(A, B)] يقدم محولًا جديدًا يشير إلى سلسلة من التشكيلات الثنائية التي تتكون من العناصر التي تتطابق مع العناصر من المحول والمحول المحدد |
يمكنك إلقاء نظرة على المزيد من الطرق مستندات API