Latest web development tutorials

Scalaのイテレータ(反復子)

Scalaのコレクション Scalaのコレクション

Scalaのイテレータ(反復子)は、コレクションへのアクセスするための方法であって、コレクションではありません。

二つの基本的な操作は、それが次とのhasNextですイテレータ

()it.nextを呼び出して次の要素にイテレータを返し、イテレータの状態を更新します。

呼び出しit.hasNext()は 、コレクションの要素があるかどうかを検出するために使用されます。

イテレータは、最も簡単な方法は、whileループを使用することですべての要素一つ一つを返します。

object Test {
   def main(args: Array[String]) {
      val it = Iterator("Baidu", "Google", "w3big", "Taobao")
      
      while (it.hasNext){
         println(it.next())
      }
   }
}

上記のコードの実装、出力は次のようになります。

$ scalac Test.scala 
$ scala Test
Baidu
Google
w3big
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のイテレータ一般的な方法

次の表では、Scalaのイテレータ一般的な方法を示しています。

いいえ。 メソッドと説明
1

デフのhasNext:ブール

返すことができる要素がある場合は、trueを返します。

2

デフ次の():

イテレータの次の要素を返し、イテレータの状態を更新します

3

デフ++(つまり:=>イテレータ [A]):イテレータ[A]

2つの反復子のマージ

4

デフ++ [B>:A] (つまり:=> GenTraversableOnce [B]):イテレータ[B]

2つの反復子のマージ

5

デフaddString(B:StringBuilderの):のStringBuilder

StringBuilderのBに文字列を追加します。

6

デフaddString(B:StringBuilderを、9月 :文字列):StringBuilderの

StringBuilder bに文字列を追加し、区切り文字を指定します

7

デフバッファリング:BufferedIterator [A]

イテレータはBufferedIteratorに変換され、

8

:デフ(:任意ELEM)が含まれていブール

検出器のイテレータは、指定された要素が含まれています

9

デフcopyToArray(XS:配列[A ]、起動します。int、LEN:INT):ユニット

イテレータ選択された値は、配列に渡されます

10

デフ(:(A)は、p数えるのInt:=>ブール値)

イテレータ要素内の要素の合計数は、条件pを満たす返します。

11

デフドロップ(N:INT):イテレータ[A]

破棄n個の要素を返す前に新しいコレクション

12

デフdropWhile(P:(A) =>ブール):イテレータ[A]

条件が満たされ、pがなくなるまで廃棄要素は、左から右へ

13

デフ複製:(イテレータ[A] 、イテレータ[A])

二つは返しますすべての要素のイテレータイテレータを生成することができました。

14

デフ(:(A)は、pが存在するブール:=>ブール値)

これは、p要素を満たすイテレータの要素があるかどうかを示すブール値を返します。

15

(:(A)は、pデフフィルタ =>ブール):Iteratorを[A]

Pの条件を満たすためにすべての要素に新しいイテレータイテレータの要素を返します。

16

デフfilterNot(P:(A) =>ブール):イテレータ[A]

条件p要素を満たしていないイテレータイテレータの要素を返します。

17

(:(A)は、pデフ見つける =>ブール):オプションを[A]

PまたはNoneを満たす最初の要素を返します。 注:要素の条件が検出された場合、反復子は要素の後に配置されます。見つからなかった場合、それは最後に配置されます。

18

DEF flatMap [B](F: (A)=> GenTraversableOnce [B]):イテレータ[B]

イテレータのためのシーケンス関数fの各要素に適用し、その結果シーケンスイテレータへのポインタを返します。

19

デフのforall(P:(A) =>ブール):ブール

それはpを満たす要素を指しているかどうかを示すブール値を返します。

20

デフforeachの(F:(A) =>ユニット):ユニット

イテレータプログラムfで返された各要素に指定された実行

21

デフhasDefiniteSize:ブール

有限要素イテレータの数がtrueを返す場合(デフォルトのisEmptyと同じ)

22

デフのindexOf(elemは:B):のInt

インデックス内の要素の反復子を返しても、xの最初の要素に等しいです。 注意:イテレータはこの要素を横切ることになります。

23

デフindexWhere(P:(A) =>ブール):のInt

条件のp要素を満たすために、インデックス内の要素の反復子を返します。 注意:イテレータはこの要素を横切ることになります。

24

デフのisEmpty:ブール

それはそれ以外の場合はFalse(のhasNextの反対)を返し、真の空、空を返しているかどうかを確認してください。

25

デフisTraversableAgain:ブール

このイテレータを繰り返しトラバースすることが可能かどうかをテストします。

26

デフの長さ:のInt

イテレータの要素数を返します。

27

DEFマップ[B](F: (A)=> B):イテレータ[B]

それは、各要素の関数fに渡された後の結果は、新しいイテレータを生成します。

28

デフ最大:

イテレータイテレータ要素最大の要素を返します。

29

デフ分:A

最小の要素でイテレータイテレータの要素を返します。

30

デフmkString:文字列

すべての要素は文字列にイテレータを変換します。

31

デフmkString(9月:文字列):文字列

すべての要素は文字列にイテレータを変換して、区切り文字を指定します。

32

デフ空でない:ブール

コンテナが要素(のhasNextに相当)が含まれているかどうかを確認してください。

33

デフpadTo(LEN:INT、elemは :A):イテレータ[A]

長さがlenに達するまで、第1のすべての要素のイテレータ、elemは追加のコピーを返します。

34

(から:INT、patchElemsデフパッチ :イテレータ[B]、置き換え:INT):イテレータ[B]

イテレータの意味の範囲内の要素によって置き換えられる最初から最初の要素から要素を交換し、新しいイテレータを返します。

35

デフ製品:

数字要素のイテレータの意味の範囲内で製品を返します。

36

デフsameElements(つまり:イテレータ[_ ]):ブール

順番に指定されているイテレータとイテレータのパラメータを分析することで、同じ要素を返します

37

デフ配列:イテレータ[A]

コレクションシリーズの背面図

38

デフサイズ:のInt

イテレータ内の要素数を返します。

39

(:までのIntからデフスライス :INT):イテレータ[A]

反復子が要素まで最初に端から開始してから最初の要素を配列断片を指している新しいイテレータを返します。

40

デフ合計:

数値要素を参照し、イテレータを返します

41

デフ取る(N:int)を:イテレータ[A]

新しいイテレータ最初のn個の要素を返します。

42

デフのtoArray:配列[A]

すべての要素のイテレータは、配列戻るに向いています。

43

デフtoBuffer:バッファ[B]

すべての要素のイテレータは、コピーバッファのバッファを指しています。

44

デフtoIterable:のIterable [A]

このトラバースまたはイテレータのすべての要素を含むのIterableを返します。これは、無限の反復子のために終了しません。

45

デフtoIterator:イテレータ[A]

すべての要素は、容器の中にイテレータをイテレータと返されました。

46

デフToListメソッド:リスト[A]

リストとリターンへのイテレータのすべての要素

47

デフtoMap [T、U]:マップ[T、U]

地図とリターンへのキーイテレータのすべて。

48

デフtoSeq:配列[A]

Seqとリターンへのコンテナ全体のすべての要素。

49

デフのtoString():文字列

イテレータは文字列に変換しました

50

デフジップ[B](つまり:イテレータ[B]):イテレータ[(A、B)

それぞれ指定されたイテレータに対応する新たなイテレータのポインティングタプル・シーケンスを戻してからその要素をイテレータ

参照するより多くの方法APIドキュメント

Scalaのコレクション Scalaのコレクション